From 4bbe7938cc44c80a1538f7c0be66c8626a22c5b8 Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Wed, 25 May 2022 14:07:43 -0400 Subject: [PATCH 1/7] LOG-2552: native-tls for aws-sdk --- Cargo.lock | 5 +---- Cargo.toml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 58c20c8d8e3df..23710ab87c498 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -840,8 +840,7 @@ dependencies = [ "http", "http-body", "hyper", - "hyper-rustls", - "lazy_static", + "hyper-tls", "pin-project 1.0.10", "pin-project-lite", "tokio", @@ -877,8 +876,6 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project 1.0.10", - "tokio", - "tokio-util 0.6.8", "tracing 0.1.32", ] diff --git a/Cargo.toml b/Cargo.toml index 3bcac1c08ef1d..de3bc3400cb5d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -140,17 +140,17 @@ metrics = { version = "0.17.1", default-features = false, features = ["std"] } metrics-tracing-context = { version = "0.9.0", default-features = false } # AWS - Official SDK -aws-config = { version = "0.9.0", optional = true } +aws-config = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } aws-types = { version = "0.9.0", optional = true, features = ["hardcoded-credentials"]} -aws-sdk-s3 = { version = "0.9.0", optional = true } -aws-sdk-sqs = { version = "0.9.0", optional = true } -aws-sdk-cloudwatch = { version = "0.9.0", optional = true } -aws-sdk-cloudwatchlogs = { version = "0.9.0", optional = true } -aws-sdk-elasticsearch = {version = "0.9.0", optional = true } -aws-sdk-firehose = { version = "0.9.0", optional = true } -aws-sdk-kinesis = { version = "0.9.0", optional = true } +aws-sdk-s3 = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } +aws-sdk-sqs = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } +aws-sdk-cloudwatch = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } +aws-sdk-cloudwatchlogs = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } +aws-sdk-elasticsearch = {version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } +aws-sdk-firehose = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } +aws-sdk-kinesis = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } aws-sigv4 = { version = "0.9.0", optional = true } -aws-smithy-client = { version = "0.39.0", optional = true } +aws-smithy-client = { version = "0.39.0", optional = true, default-features = false, features = ["native-tls"] } aws-smithy-http = { version = "0.39.0", optional = true } # Azure From 7b2364fa98691cef84ee71a431711352b1773a4d Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Wed, 25 May 2022 14:17:03 -0400 Subject: [PATCH 2/7] LOG-2552: link OpenSSL dynamically --- Cargo.lock | 10 ---------- Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 23710ab87c498..387d805f8b80d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5104,15 +5104,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-src" -version = "111.18.0+1.1.1n" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7897a926e1e8d00219127dc020130eca4292e5ca666dd592480d72c3eca2ff6c" -dependencies = [ - "cc", -] - [[package]] name = "openssl-sys" version = "0.9.72" @@ -5122,7 +5113,6 @@ dependencies = [ "autocfg", "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] diff --git a/Cargo.toml b/Cargo.toml index de3bc3400cb5d..2a3a63af8ee5a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -251,7 +251,7 @@ nom = { version = "7.1.1", default-features = false, optional = true } notify = { version = "4.0.17", default-features = false } num_cpus = { version = "1.13.1", default-features = false } once_cell = { version = "1.10", default-features = false } -openssl = { version = "0.10.38", default-features = false, features = ["vendored"] } +openssl = { version = "0.10.38", default-features = false} openssl-probe = { version = "0.1.5", default-features = false } ordered-float = { version = "2.10.0", default-features = false } percent-encoding = { version = "2.1.0", default-features = false } From ddeb5c5d5247ad01fa0f53544b7f5990be4de742 Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Wed, 25 May 2022 22:46:02 -0400 Subject: [PATCH 3/7] LOG-2552: make bollard dependency optional --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2a3a63af8ee5a..9ac56a57c240d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -208,7 +208,7 @@ async-compression = { version = "0.3.12", default-features = false, features = [ avro-rs = { version = "0.13.0", default-features = false, optional = true } base64 = { version = "0.13.0", default-features = false, optional = true } bloom = { version = "0.3.2", default-features = false, optional = true } -bollard = { version = "0.11.1", default-features = false, features = ["ssl"] } +bollard = { version = "0.11.1", default-features = false, features = ["ssl"], optional = true } bytes = { version = "1.1.0", default-features = false, features = ["serde"] } bytesize = { version = "1.1.0", default-features = false } chrono = { version = "0.4.19", default-features = false, features = ["serde"] } From cd9b383fd5f1a6a73dc573b011948bbdc4df6d66 Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Fri, 27 May 2022 00:40:20 -0400 Subject: [PATCH 4/7] LOG-2552: replace Ring with OpenSSL in aws-config --- Cargo.lock | 4 +- Cargo.toml | 1 + patch/aws-config/.cargo-checksum.json | 1 + patch/aws-config/Cargo.lock | 1843 +++++++++++++++++ patch/aws-config/Cargo.toml | 130 ++ patch/aws-config/LICENSE | 175 ++ patch/aws-config/README.md | 72 + patch/aws-config/additional-ci | 18 + patch/aws-config/examples/imds.rs | 19 + patch/aws-config/src/cache.rs | 163 ++ patch/aws-config/src/connector.rs | 60 + patch/aws-config/src/default_provider.rs | 40 + .../src/default_provider/app_name.rs | 95 + .../src/default_provider/credentials.rs | 506 +++++ .../aws-config/src/default_provider/region.rs | 79 + .../src/default_provider/retry_config.rs | 104 + .../src/default_provider/timeout_config.rs | 97 + patch/aws-config/src/ecs.rs | 750 +++++++ patch/aws-config/src/environment/app_name.rs | 70 + .../aws-config/src/environment/credentials.rs | 193 ++ patch/aws-config/src/environment/mod.rs | 24 + patch/aws-config/src/environment/region.rs | 90 + .../src/environment/retry_config.rs | 156 ++ .../src/environment/timeout_config.rs | 141 ++ patch/aws-config/src/fs_util.rs | 62 + .../src/http_credential_provider.rs | 301 +++ patch/aws-config/src/imds/client.rs | 1152 +++++++++++ patch/aws-config/src/imds/client/token.rs | 197 ++ patch/aws-config/src/imds/credentials.rs | 251 +++ patch/aws-config/src/imds/mod.rs | 19 + patch/aws-config/src/imds/region.rs | 177 ++ patch/aws-config/src/json_credentials.rs | 377 ++++ patch/aws-config/src/lib.rs | 406 ++++ .../aws-config/src/meta/credentials/chain.rs | 107 + .../src/meta/credentials/credential_fn.rs | 141 ++ .../src/meta/credentials/lazy_caching.rs | 488 +++++ patch/aws-config/src/meta/credentials/mod.rs | 15 + patch/aws-config/src/meta/mod.rs | 8 + patch/aws-config/src/meta/region.rs | 184 ++ patch/aws-config/src/parsing.rs | 102 + patch/aws-config/src/profile/app_name.rs | 184 ++ patch/aws-config/src/profile/credentials.rs | 496 +++++ .../src/profile/credentials/exec.rs | 232 +++ .../src/profile/credentials/repr.rs | 492 +++++ patch/aws-config/src/profile/mod.rs | 24 + patch/aws-config/src/profile/parser.rs | 387 ++++ .../src/profile/parser/normalize.rs | 241 +++ patch/aws-config/src/profile/parser/parse.rs | 346 ++++ patch/aws-config/src/profile/parser/source.rs | 349 ++++ patch/aws-config/src/profile/region.rs | 260 +++ patch/aws-config/src/profile/retry_config.rs | 156 ++ .../aws-config/src/profile/timeout_config.rs | 183 ++ patch/aws-config/src/provider_config.rs | 271 +++ patch/aws-config/src/sso.rs | 454 ++++ patch/aws-config/src/sts.rs | 27 + patch/aws-config/src/sts/assume_role.rs | 223 ++ patch/aws-config/src/sts/util.rs | 53 + patch/aws-config/src/test_case.rs | 253 +++ patch/aws-config/src/web_identity_token.rs | 343 +++ 59 files changed, 13789 insertions(+), 3 deletions(-) create mode 100644 patch/aws-config/.cargo-checksum.json create mode 100644 patch/aws-config/Cargo.lock create mode 100644 patch/aws-config/Cargo.toml create mode 100644 patch/aws-config/LICENSE create mode 100644 patch/aws-config/README.md create mode 100755 patch/aws-config/additional-ci create mode 100644 patch/aws-config/examples/imds.rs create mode 100644 patch/aws-config/src/cache.rs create mode 100644 patch/aws-config/src/connector.rs create mode 100644 patch/aws-config/src/default_provider.rs create mode 100644 patch/aws-config/src/default_provider/app_name.rs create mode 100644 patch/aws-config/src/default_provider/credentials.rs create mode 100644 patch/aws-config/src/default_provider/region.rs create mode 100644 patch/aws-config/src/default_provider/retry_config.rs create mode 100644 patch/aws-config/src/default_provider/timeout_config.rs create mode 100644 patch/aws-config/src/ecs.rs create mode 100644 patch/aws-config/src/environment/app_name.rs create mode 100644 patch/aws-config/src/environment/credentials.rs create mode 100644 patch/aws-config/src/environment/mod.rs create mode 100644 patch/aws-config/src/environment/region.rs create mode 100644 patch/aws-config/src/environment/retry_config.rs create mode 100644 patch/aws-config/src/environment/timeout_config.rs create mode 100644 patch/aws-config/src/fs_util.rs create mode 100644 patch/aws-config/src/http_credential_provider.rs create mode 100644 patch/aws-config/src/imds/client.rs create mode 100644 patch/aws-config/src/imds/client/token.rs create mode 100644 patch/aws-config/src/imds/credentials.rs create mode 100644 patch/aws-config/src/imds/mod.rs create mode 100644 patch/aws-config/src/imds/region.rs create mode 100644 patch/aws-config/src/json_credentials.rs create mode 100644 patch/aws-config/src/lib.rs create mode 100644 patch/aws-config/src/meta/credentials/chain.rs create mode 100644 patch/aws-config/src/meta/credentials/credential_fn.rs create mode 100644 patch/aws-config/src/meta/credentials/lazy_caching.rs create mode 100644 patch/aws-config/src/meta/credentials/mod.rs create mode 100644 patch/aws-config/src/meta/mod.rs create mode 100644 patch/aws-config/src/meta/region.rs create mode 100644 patch/aws-config/src/parsing.rs create mode 100644 patch/aws-config/src/profile/app_name.rs create mode 100644 patch/aws-config/src/profile/credentials.rs create mode 100644 patch/aws-config/src/profile/credentials/exec.rs create mode 100644 patch/aws-config/src/profile/credentials/repr.rs create mode 100644 patch/aws-config/src/profile/mod.rs create mode 100644 patch/aws-config/src/profile/parser.rs create mode 100644 patch/aws-config/src/profile/parser/normalize.rs create mode 100644 patch/aws-config/src/profile/parser/parse.rs create mode 100644 patch/aws-config/src/profile/parser/source.rs create mode 100644 patch/aws-config/src/profile/region.rs create mode 100644 patch/aws-config/src/profile/retry_config.rs create mode 100644 patch/aws-config/src/profile/timeout_config.rs create mode 100644 patch/aws-config/src/provider_config.rs create mode 100644 patch/aws-config/src/sso.rs create mode 100644 patch/aws-config/src/sts.rs create mode 100644 patch/aws-config/src/sts/assume_role.rs create mode 100644 patch/aws-config/src/sts/util.rs create mode 100644 patch/aws-config/src/test_case.rs create mode 100644 patch/aws-config/src/web_identity_token.rs diff --git a/Cargo.lock b/Cargo.lock index 387d805f8b80d..90bec0340643b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -524,8 +524,6 @@ dependencies = [ [[package]] name = "aws-config" version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da63196d2d0dd38667b404459a35d32562a8d83c1f46c5b789ab89ab176fd53" dependencies = [ "aws-http", "aws-sdk-sso", @@ -541,7 +539,7 @@ dependencies = [ "hex", "http", "hyper", - "ring", + "openssl", "tokio", "tower", "tracing 0.1.32", diff --git a/Cargo.toml b/Cargo.toml index 9ac56a57c240d..1804a6117c703 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -334,6 +334,7 @@ leveldb-sys = { git = "https://github.com/vectordotdev/leveldb-sys.git", branch # Removes dependency on `time` v0.1 # https://github.com/chronotope/chrono/pull/578 chrono = { git = "https://github.com/vectordotdev/chrono.git", branch = "no-default-time" } +aws-config = { path = "patch/aws-config" } [features] ocp-logging = [ diff --git a/patch/aws-config/.cargo-checksum.json b/patch/aws-config/.cargo-checksum.json new file mode 100644 index 0000000000000..6f4aa70474e36 --- /dev/null +++ b/patch/aws-config/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.lock":"304f241b7aae1acc1e24fc91f6af6de6e3d9bef205633287e3e6bee1d54cff09","Cargo.toml":"5dbcd7201b9cec70cc9e90e90171dba69bde98938142f83b3f6bc50996b55cbe","LICENSE":"09e8a9bcec8067104652c168685ab0931e7868f9c8284b66f5ae6edae5f1130b","README.md":"c37b31a9c037887944302084a51873c901ca1525570bb23cdf3ce9029ba601f4","additional-ci":"635a2ab25920a342ec0d52cef4b78a0aa82dd637603667f01805d3e9a64ad5b5","examples/imds.rs":"e0df4959f2205d9a0ac544a99c461f96a09cf8013b56869943cfbeaca3f0fa57","src/cache.rs":"0ef94a4b8db871028c528b5f75dae107e4ceb34cc8ddf84a7bcde9bf8c34349f","src/connector.rs":"9181e21cbbeb503afb273b1934bc3699c97094608a658251701b6f99ae5fa568","src/default_provider.rs":"94b95238864fbc0c543f10370001b112a01b1535276a8cecac90189f48f6ef07","src/default_provider/app_name.rs":"ee2e87dc47397650611b9aaa930507d59173ef50411c71bebdf4c9536eb5c839","src/default_provider/credentials.rs":"a386ac05b34c077c8c178b8824ce91be96a8162732b71bf1c6c3230baa366103","src/default_provider/region.rs":"1f60f32d0e6046e79fb6fd3ed7ca695cefef27014afe64af134004b546199d18","src/default_provider/retry_config.rs":"f363195a93c25eba35df4cb158925951cf847e8f867b1b0d0cd60e0881538a41","src/default_provider/timeout_config.rs":"9e86355470dd54d9745cff0d7a408f52d7d05603a69c03516c52787e0a35db31","src/ecs.rs":"6f1410c19f1e78fab956f6b2232231e797996c45f723f8ea30cb61dc32eabb6a","src/environment/app_name.rs":"1cebf73cd10fd8a22cc8204cd35a54a228d4fba4aa830f9cea9c508e14d789ff","src/environment/credentials.rs":"7727f2f7a88cc806068b1c9a352c832ce517a625ccb7ba99ef540bb255c816e8","src/environment/mod.rs":"55d2e7d23e40844568bb8ee8b702cd6893a6aa056adb0ba8318537e0265376bb","src/environment/region.rs":"5874f35f37a92c29957dbdc0e57291e3296184634ca28b6fa7df4b5b3e572fd8","src/environment/retry_config.rs":"7052e0609d68a28ba026f13d8d91a8f2d0d55f2c0491acf360bbcfbf338976c7","src/environment/timeout_config.rs":"097767ce6e5fca6c89a9d823402119ddf2f06eecbce9961f24ed32315a07fa25","src/fs_util.rs":"ddd0c6ed3cebc68152ff99f9e33c24c8f0879e7ebd9d4f5f154f20dfe4847c8c","src/http_credential_provider.rs":"cd5fa4c201a857a84100b2b3efe65ae4267255e25ab351d58cccc6ddeab98b21","src/imds/client.rs":"5103d71a7ba746943f0461fb3729eec969a1d3c9b598efc6bfc24d46bf7edbc9","src/imds/client/token.rs":"9d0754186a5a18dae9078ce5359d44f683e3ef09bfb0651f40854783885d399f","src/imds/credentials.rs":"ef48ec83002497c4327094f74d2d1aa944ae94580969fcfa830045ca0e7c9ce7","src/imds/mod.rs":"52bcfd7cc9e807ccc2d8afb8568fbcc6a1cd571eac2e06dbf703765ee53c152d","src/imds/region.rs":"f2c41de6fc4c26f68e02d62af82321e56965114e345227e6de656d55e28b915f","src/json_credentials.rs":"de7cbc1120d1089388ae2aac5967b560f711a164221ee83ef50297e459dfff49","src/lib.rs":"43a7fa5db94faa84b1dd7f0ca7648025892359fa55168357abdb7f4aba56c475","src/meta/credentials/chain.rs":"dddcee3651fd2c6d0926c17b9bd37296eb43857639ee238d21b4b2da4caabd80","src/meta/credentials/credential_fn.rs":"1b319d5800ac53415f4a74968602b17f044f84a8339bb32e5b13709ef753e4aa","src/meta/credentials/lazy_caching.rs":"8d9b1c159b964aed9b196aaacf4a634ab2ffdb1295a7d2a121b9d89c41ce4d0e","src/meta/credentials/mod.rs":"a67a3110e4ba8fb641efb817975606b02cdb17c88ed4988aa4709e3b3f7f1824","src/meta/mod.rs":"031e68ce64dafb417b027f7665cc75ee5cc5664887c7806c85c4c7bc19aafc2c","src/meta/region.rs":"d669057f3f0a3d44cce403b66e61fa131dfe01ae8704762aa659b4503c1507e4","src/parsing.rs":"1ae7a5ca45b379b06d9ccaec845c38bd79081dbca13b59db4734bfe883de8ece","src/profile/app_name.rs":"e55119f7f587dfb899c5f073cd91169a8e4c41d73cc39aad3ffac8dc29369ba3","src/profile/credentials.rs":"08920469a873a3845564626560898a059e0114b11c78ea95e1243db848667913","src/profile/credentials/exec.rs":"5c834b05091a0f03888d3971dfbb0942b3b98433f116276f54b187b9e50abd00","src/profile/credentials/repr.rs":"93b7217011da3b0e9332d10e8d32b09c628a4b6a03b22684029ee1cc79dd2103","src/profile/mod.rs":"6938c8279487de762031897229122f039369ab9c6c45b37095c0087d77932dbd","src/profile/parser.rs":"c4f4d438dfa077483cf2111ee93999e5852370ff9af29c7dee0792c8ff5cf0e5","src/profile/parser/normalize.rs":"8d3d513f4cc77b09e5457fbad4f98bb580fe6ad40eb1ea2316e267cf2a9c986c","src/profile/parser/parse.rs":"55073a88b22db6eea8c88f345ad1a6190f6709f49b78bfbc06af7c90b08ed64b","src/profile/parser/source.rs":"010708b4d1ac11ea3df9c3fd6014dc180145024ed232264af47a20e32e6d252e","src/profile/region.rs":"7ff1690464824a3a400efce7f484acfe8d6260d01d2142c37a97edd3342ed2be","src/profile/retry_config.rs":"62a1dc2a0c5119da6a2203c3d5b75f38244fc4171ff7422e60384ac19deccb55","src/profile/timeout_config.rs":"dae51600a668d32f306be8189f7553b40e7055624f90cfeecd028473f1640f5d","src/provider_config.rs":"90ad94d87779793d3570906cf968381a78e08088d0170d00d93093ce5fcfc890","src/sso.rs":"0cafe289657fbb2afc8c7c74e8d6c675cb6e59ea811539c66fdffb0c70f9fda6","src/sts.rs":"55fd6b002f16ef8de378546ff1b069f3a0f07f18b6f41949e40d071d665a3648","src/sts/assume_role.rs":"1b68867bd2c027811856e63376d42929a7c5e81de628dda33d6c01ebb5e9a6b8","src/sts/util.rs":"58c7aaa6bcd4808f74d37ad3e00f9499800f5d7a5ea6ffffb21fc15de002cf97","src/test_case.rs":"5e1a539074b3b2c4b7385572070f1b60ee51425ad3d00f111bd95daa435074aa","src/web_identity_token.rs":"ed52452e6908ede1a3827a6a8ad611ed2bc41b4701998bc25f343bc3f18d2cbb"},"package":"2da63196d2d0dd38667b404459a35d32562a8d83c1f46c5b789ab89ab176fd53"} \ No newline at end of file diff --git a/patch/aws-config/Cargo.lock b/patch/aws-config/Cargo.lock new file mode 100644 index 0000000000000..3a40945c50881 --- /dev/null +++ b/patch/aws-config/Cargo.lock @@ -0,0 +1,1843 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "arbitrary" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c38b6b6b79f671c25e1a3e785b7b82d7562ffc9cd3efdc98627e5668a2472490" + +[[package]] +name = "assert-json-diff" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4259cbe96513d2f1073027a259fc2ca917feb3026a5a8d984e3628e490255cc0" +dependencies = [ + "extend", + "serde", + "serde_json", +] + +[[package]] +name = "async-trait" +version = "0.1.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "aws-config" +version = "0.9.0" +dependencies = [ + "arbitrary", + "async-trait", + "aws-http", + "aws-sdk-sso", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-types", + "aws-types", + "bytes", + "env_logger", + "futures-util", + "hex", + "http", + "hyper", + "hyper-rustls 0.23.0", + "openssl", + "serde", + "serde_json", + "tokio", + "tower", + "tracing", + "tracing-test", + "zeroize", +] + +[[package]] +name = "aws-endpoint" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5279590d48e92b287f864e099c7e851af03a5e184a57cec0959872cee297c7a0" +dependencies = [ + "aws-smithy-http", + "aws-types", + "http", + "regex", + "tracing", +] + +[[package]] +name = "aws-http" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7046bdd807c70caf28d6dbc69b9d6d8dda1728577866d3ff3862de585b8b0eb" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "aws-types", + "http", + "lazy_static", + "percent-encoding", + "tracing", +] + +[[package]] +name = "aws-sdk-sso" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96f9038b498944025a39e426ae38f64e3e8481a9d675469580e1de7397b46ed5" +dependencies = [ + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-types", + "aws-types", + "bytes", + "http", + "tokio-stream", + "tower", +] + +[[package]] +name = "aws-sdk-sts" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e717e67debcd7f9d87563d08e7d40e3c5c28634a8badc491650d5ad2305befd3" +dependencies = [ + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-query", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes", + "http", + "tower", +] + +[[package]] +name = "aws-sig-auth" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0e6e4ba09f502057ad6a4ebf3627f9dae8402e366cf7b36ca1c09cbff8b5834" +dependencies = [ + "aws-sigv4", + "aws-smithy-http", + "aws-types", + "http", + "thiserror", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea07a5a108ee538793d681d608057218df95c5575f6c0699a1973c27a09334b2" +dependencies = [ + "aws-smithy-http", + "form_urlencoded", + "hex", + "http", + "once_cell", + "percent-encoding", + "regex", + "ring", + "time", + "tracing", +] + +[[package]] +name = "aws-smithy-async" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66ab5373d24e1651860240f122a8d956f7a2094d4553c78979617a7fac640030" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + +[[package]] +name = "aws-smithy-client" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88e8a92747322eace67f666402a5949da27675f60a2b9098b84b63edef8e6980" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-protocol-test", + "aws-smithy-types", + "bytes", + "fastrand", + "http", + "http-body", + "hyper", + "hyper-rustls 0.22.1", + "hyper-tls", + "lazy_static", + "pin-project", + "pin-project-lite", + "serde", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579d0c2ae96c700499c5330f082c4170b0535835f01eb845056324aa0abd04b4" +dependencies = [ + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http", + "http-body", + "hyper", + "once_cell", + "percent-encoding", + "pin-project", + "tracing", +] + +[[package]] +name = "aws-smithy-http-tower" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "101a2e213acebe624cfb9bfc944de5e33c849e0df0f09c3d3aa3b54368dbe7af" +dependencies = [ + "aws-smithy-http", + "bytes", + "http", + "http-body", + "pin-project", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd21f28535a2538b77274aa590abfb6d37aece3281dfc4c9411c1625d3b9239e" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-protocol-test" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793e1265ac2b4a6b135bda6f0c8e5c2361d3eda02e9d984054235247f2f3929e" +dependencies = [ + "assert-json-diff", + "http", + "pretty_assertions", + "regex", + "roxmltree", + "serde_json", + "thiserror", +] + +[[package]] +name = "aws-smithy-query" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5a2c90311b0d20cf23212a15961cad2b76480863b1f7ce0608d9ece8dacdfb" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-types" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "962f2da621cd29f272636eebce39ca321c91e02bbb7eb848c4587ac14933d339" +dependencies = [ + "itoa", + "num-integer", + "ryu", + "time", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829c7efd92b7a6d0536ceb48fd93a289ddf8763c67bffe875d82eae3f9886546" +dependencies = [ + "thiserror", + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68159725aa77553dbc6028f36d8378563cd45b18ef9cf03d1515ac469efacf13" +dependencies = [ + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-types", + "rustc_version", + "tracing", + "zeroize", +] + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "bytes-utils" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e314712951c43123e5920a446464929adc667a5eade7f8fb3997776c9df6e54" +dependencies = [ + "bytes", + "either", +] + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "ct-logs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" +dependencies = [ + "sct 0.6.1", +] + +[[package]] +name = "ctor" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "diff" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "env_logger" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "extend" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" + +[[package]] +name = "futures-macro" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" + +[[package]] +name = "futures-task" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" + +[[package]] +name = "futures-util" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "h2" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "http" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +dependencies = [ + "ct-logs", + "futures-util", + "hyper", + "log", + "rustls 0.19.1", + "rustls-native-certs 0.5.0", + "tokio", + "tokio-rustls 0.22.0", + "webpki 0.21.4", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.4", + "rustls-native-certs 0.6.1", + "tokio", + "tokio-rustls 0.23.2", + "webpki-roots", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "indexmap" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "js-sys" +version = "0.3.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.120" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad5c14e80759d0939d013e6ca49930e59fc53dd8e5009132f76240c179380c09" + +[[package]] +name = "lock_api" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "mio" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +dependencies = [ + "libc", + "log", + "miow", + "ntapi", + "wasi", + "winapi", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "native-tls" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba1801fb138d8e85e11d0fc70baf4fe1cdfffda7c6cd34a854905df588e5ed0" +dependencies = [ + "libc", +] + +[[package]] +name = "once_cell" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" + +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "output_vt100" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +dependencies = [ + "winapi", +] + +[[package]] +name = "parking_lot" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pin-project" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" + +[[package]] +name = "pretty_assertions" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c038cb5319b9c704bf9c227c261d275bfec0ad438118a2787ce47944fb228b" +dependencies = [ + "ansi_term", + "ctor", + "diff", + "output_vt100", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "roxmltree" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", +] + +[[package]] +name = "rustls" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +dependencies = [ + "log", + "ring", + "sct 0.7.0", + "webpki 0.22.0", +] + +[[package]] +name = "rustls-native-certs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" +dependencies = [ + "openssl-probe", + "rustls 0.19.1", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca9ebdfa27d3fc180e42879037b5338ab1c040c06affd00d8338598e7800943" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64", +] + +[[package]] +name = "ryu" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" + +[[package]] +name = "serde" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "socket2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "syn" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" +dependencies = [ + "libc", + "num_threads", +] + +[[package]] +name = "tokio" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" +dependencies = [ + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "once_cell", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "winapi", +] + +[[package]] +name = "tokio-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +dependencies = [ + "rustls 0.19.1", + "tokio", + "webpki 0.21.4", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +dependencies = [ + "rustls 0.20.4", + "tokio", + "webpki 0.22.0", +] + +[[package]] +name = "tokio-stream" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a89fd63ad6adf737582df5db40d286574513c69a11dac5214dc3b5603d6713e" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" +dependencies = [ + "lazy_static", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0ab7bdc962035a87fba73f3acca9b8a8d0034c2e6f60b84aeaaddddc155dce" +dependencies = [ + "ansi_term", + "lazy_static", + "matchers", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-test" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb7bda2e93bbc9c5b247034acc6a4b3d04f033a3d4b8fc1cb87d4d1c7c7ebd7" +dependencies = [ + "lazy_static", + "tracing-core", + "tracing-subscriber", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4801dca35e4e2cee957c469bd4a1c370fadb7894c0d50721a40eba3523e6e91c" +dependencies = [ + "lazy_static", + "quote", + "syn", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "urlencoding" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a1f0175e03a0973cf4afd476bef05c26e228520400eb1fd473ad417b1c00ffb" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" + +[[package]] +name = "web-sys" +version = "0.3.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" +dependencies = [ + "webpki 0.22.0", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" + +[[package]] +name = "windows_i686_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" + +[[package]] +name = "windows_i686_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" + +[[package]] +name = "xmlparser" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8" + +[[package]] +name = "zeroize" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb5728b8afd3f280a869ce1d4c554ffaed35f45c231fc41bfbd0381bef50317" diff --git a/patch/aws-config/Cargo.toml b/patch/aws-config/Cargo.toml new file mode 100644 index 0000000000000..8b2de243b9beb --- /dev/null +++ b/patch/aws-config/Cargo.toml @@ -0,0 +1,130 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +edition = "2018" +name = "aws-config" +version = "0.9.0" +authors = ["AWS Rust SDK Team ", "Russell Cohen "] +exclude = ["test-data/*", "integration-tests/*"] +description = "AWS SDK config and credential provider implementations." +license = "Apache-2.0" +repository = "https://github.com/awslabs/smithy-rs" +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-unknown-linux-gnu"] +[dependencies.aws-http] +version = "0.9.0" + +[dependencies.aws-sdk-sso] +version = "0.9.0" +default-features = false + +[dependencies.aws-sdk-sts] +version = "0.9.0" +default-features = false + +[dependencies.aws-smithy-async] +version = "0.39.0" + +[dependencies.aws-smithy-client] +version = "0.39.0" + +[dependencies.aws-smithy-http] +version = "0.39.0" + +[dependencies.aws-smithy-http-tower] +version = "0.39.0" + +[dependencies.aws-smithy-json] +version = "0.39.0" + +[dependencies.aws-smithy-types] +version = "0.39.0" + +[dependencies.aws-types] +version = "0.9.0" + +[dependencies.bytes] +version = "1.1.0" + +[dependencies.hex] +version = "0.4.3" + +[dependencies.http] +version = "0.2.4" + +[dependencies.hyper] +version = "0.14" +default-features = false + +[dependencies.tokio] +version = "1" +features = ["sync"] + +[dependencies.tower] +version = "0.4.8" + +[dependencies.tracing] +version = "0.1" + +[dependencies.zeroize] +version = "1" + +[dependencies.ring] +version = "0.16" +optional = true + +[dependencies.openssl] +version = "0.10.38" +optional = true + +[dev-dependencies.arbitrary] +version = "1.0.2" + +[dev-dependencies.async-trait] +version = "0.1.51" + +[dev-dependencies.aws-smithy-client] +version = "0.39.0" +features = ["test-util"] + +[dev-dependencies.env_logger] +version = "0.9.0" + +[dev-dependencies.futures-util] +version = "0.3.16" + +[dev-dependencies.hyper-rustls] +version = "0.23.0" +features = ["webpki-tokio", "http2", "http1"] + +[dev-dependencies.serde] +version = "1" +features = ["derive"] + +[dev-dependencies.serde_json] +version = "1" + +[dev-dependencies.tokio] +version = "1" +features = ["full", "test-util"] + +[dev-dependencies.tracing-test] +version = "0.2.1" + +[features] +default = ["rustls", "rt-tokio"] +native-tls = ["openssl", "aws-smithy-client/native-tls"] +rt-tokio = ["aws-smithy-async/rt-tokio"] +rustls = ["ring", "aws-smithy-client/rustls"] diff --git a/patch/aws-config/LICENSE b/patch/aws-config/LICENSE new file mode 100644 index 0000000000000..67db8588217f2 --- /dev/null +++ b/patch/aws-config/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/patch/aws-config/README.md b/patch/aws-config/README.md new file mode 100644 index 0000000000000..d14eff55843f7 --- /dev/null +++ b/patch/aws-config/README.md @@ -0,0 +1,72 @@ +# aws-config + +AWS SDK config and credential provider implementations. + +**Please Note: The SDK is currently released as an alpha and is intended strictly for feedback purposes only. Do not use this SDK for production workloads.** + + The implementations can be used either via the default chain implementation `from_env`/`ConfigLoader` or ad-hoc individual credential and region providers. + +A `ConfigLoader` can combine different configuration sources into an AWS shared-config `Config`. The `Config` can then be used to configure one or more AWS service clients. + +## Examples + +Load default SDK configuration: + +```rust +async fn example() { + let config = aws_config::load_from_env().await; + let client = aws_sdk_dynamodb::Client::new(&config); +} +``` + +Load SDK configuration with a region override: + +```rust +use aws_config::meta::region::RegionProviderChain; + +async fn example() { + let region_provider = RegionProviderChain::default_provider().or_else("us-east-1"); + let config = aws_config::from_env().region(region_provider).load().await; + let client = aws_sdk_dynamodb::Client::new(&config); +} +``` + +## Getting Started + +_Examples are available for many services and operations, check out the [examples folder in GitHub][Usage examples]._ + +The SDK provides one crate per AWS service. You must add [Tokio] as a dependency within your Rust project to execute asynchronous code. To add aws-sdk-config to your project, add the following to your Cargo.toml file where VERSION is the version of the SDK you want to use: + +```toml +[dependencies] +aws-config = "VERSION" +aws-sdk-config = "VERSION" +tokio = { version = "1", features = ["full"] } +``` + +## Using the SDK + +Until the SDK is released, we will be adding information about using the SDK to the [Guide]. Feel free to suggest additional sections for the guide by opening an issue and describing what you are trying to do. + +## Getting Help + +- [GitHub discussions] - For ideas, RFCs & general questions +- [GitHub issues] – For bug reports & feature requests +- [Generated Docs] (latest version) +- [Usage examples] + +## License + +This project is licensed under the Apache-2.0 License. + +[examples folder in GitHub]: https://github.com/awslabs/aws-sdk-rust/tree/main/examples +[Tokio]: https://crates.io/crates/tokio +[Guide]: https://github.com/awslabs/aws-sdk-rust/blob/main/Guide.md +[GitHub discussions]: https://github.com/awslabs/aws-sdk-rust/discussions +[GitHub issues]: https://github.com/awslabs/aws-sdk-rust/issues/new/choose +[Generated Docs]: https://awslabs.github.io/aws-sdk-rust/ +[Usage examples]: https://github.com/awslabs/aws-sdk-rust/tree/main/examples + + +This crate is part of the [AWS SDK for Rust](https://awslabs.github.io/aws-sdk-rust/) and the [smithy-rs](https://github.com/awslabs/smithy-rs) code generator. In most cases, it should not be used directly. + diff --git a/patch/aws-config/additional-ci b/patch/aws-config/additional-ci new file mode 100755 index 0000000000000..00522a9e0c77a --- /dev/null +++ b/patch/aws-config/additional-ci @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0. +# + +# This script contains additional CI checks to run for this specific package + +set -e + +echo "### Checking for duplicate dependency versions in the normal dependency graph with all features enabled" +cargo tree -d --edges normal --all-features + +echo "### Testing with all features enabled" +cargo test --all-features + +echo "### Testing each feature in isolation" +cargo hack test --feature-powerset diff --git a/patch/aws-config/examples/imds.rs b/patch/aws-config/examples/imds.rs new file mode 100644 index 0000000000000..3c6653df5c1dd --- /dev/null +++ b/patch/aws-config/examples/imds.rs @@ -0,0 +1,19 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +/// IMDSv2 client usage example +/// +/// The IMDS client is used with `aws-config` to load credentials and regions, however, you can also +/// use the client directly. This example demonstrates loading the instance-id from IMDS. More +/// fetures of IMDS can be found [here](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) +#[tokio::main] +async fn main() -> Result<(), Box> { + use aws_config::imds::Client; + + let imds = Client::builder().build().await?; + let instance_id = imds.get("/latest/meta-data/instance-id").await?; + println!("current instance id: {}", instance_id); + Ok(()) +} diff --git a/patch/aws-config/src/cache.rs b/patch/aws-config/src/cache.rs new file mode 100644 index 0000000000000..d3b0b8ef6b357 --- /dev/null +++ b/patch/aws-config/src/cache.rs @@ -0,0 +1,163 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Expiry-aware cache +//! +//! [`ExpiringCache`] implements two important features: +//! 1. Respect expiry of contents +//! 2. Deduplicate load requests to prevent thundering herds when no value is present. + +use std::future::Future; +use std::marker::PhantomData; +use std::sync::Arc; +use std::time::{Duration, SystemTime}; +use tokio::sync::{OnceCell, RwLock}; + +#[derive(Debug)] +pub(crate) struct ExpiringCache { + /// Amount of time before the actual expiration time + /// when the value is considered expired. + buffer_time: Duration, + value: Arc>>, + _phantom: PhantomData, +} + +impl Clone for ExpiringCache { + fn clone(&self) -> Self { + Self { + buffer_time: self.buffer_time, + value: self.value.clone(), + _phantom: Default::default(), + } + } +} + +impl ExpiringCache +where + T: Clone, +{ + pub fn new(buffer_time: Duration) -> Self { + ExpiringCache { + buffer_time, + value: Arc::new(RwLock::new(OnceCell::new())), + _phantom: Default::default(), + } + } + + #[cfg(test)] + async fn get(&self) -> Option + where + T: Clone, + { + self.value + .read() + .await + .get() + .cloned() + .map(|(creds, _expiry)| creds) + } + + /// Attempts to refresh the cached value with the given future. + /// If multiple threads attempt to refresh at the same time, one of them will win, + /// and the others will await that thread's result rather than multiple refreshes occurring. + /// The function given to acquire a value future, `f`, will not be called + /// if another thread is chosen to load the value. + pub async fn get_or_load(&self, f: F) -> Result + where + F: FnOnce() -> Fut, + Fut: Future>, + { + let lock = self.value.read().await; + let future = lock.get_or_try_init(f); + future.await.map(|(value, _expiry)| value.clone()) + } + + /// If the value is expired, clears the cache. Otherwise, yields the current value. + pub async fn yield_or_clear_if_expired(&self, now: SystemTime) -> Option { + // Short-circuit if the value is not expired + if let Some((value, expiry)) = self.value.read().await.get() { + if !expired(*expiry, self.buffer_time, now) { + return Some(value.clone()); + } + } + + // Acquire a write lock to clear the cache, but then once the lock is acquired, + // check again that the value is not already cleared. If it has been cleared, + // then another thread is refreshing the cache by the time the write lock was acquired. + let mut lock = self.value.write().await; + if let Some((_value, expiration)) = lock.get() { + // Also check that we're clearing the expired value and not a value + // that has been refreshed by another thread. + if expired(*expiration, self.buffer_time, now) { + *lock = OnceCell::new(); + } + } + None + } +} + +fn expired(expiration: SystemTime, buffer_time: Duration, now: SystemTime) -> bool { + now >= (expiration - buffer_time) +} + +#[cfg(test)] +mod tests { + use super::{expired, ExpiringCache}; + use aws_types::credentials::CredentialsError; + use aws_types::Credentials; + use std::time::{Duration, SystemTime}; + use tracing_test::traced_test; + + fn credentials(expired_secs: u64) -> Result<(Credentials, SystemTime), CredentialsError> { + let expiry = epoch_secs(expired_secs); + let creds = Credentials::new("test", "test", None, Some(expiry), "test"); + Ok((creds, expiry)) + } + + fn epoch_secs(secs: u64) -> SystemTime { + SystemTime::UNIX_EPOCH + Duration::from_secs(secs) + } + + #[test] + fn expired_check() { + let ts = epoch_secs(100); + assert!(expired(ts, Duration::from_secs(10), epoch_secs(1000))); + assert!(expired(ts, Duration::from_secs(10), epoch_secs(90))); + assert!(!expired(ts, Duration::from_secs(10), epoch_secs(10))); + } + + #[traced_test] + #[tokio::test] + async fn cache_clears_if_expired_only() { + let cache = ExpiringCache::new(Duration::from_secs(10)); + assert!(cache + .yield_or_clear_if_expired(epoch_secs(100)) + .await + .is_none()); + + cache + .get_or_load(|| async { credentials(100) }) + .await + .unwrap(); + assert_eq!(Some(epoch_secs(100)), cache.get().await.unwrap().expiry()); + + // It should not clear the credentials if they're not expired + assert_eq!( + Some(epoch_secs(100)), + cache + .yield_or_clear_if_expired(epoch_secs(10)) + .await + .unwrap() + .expiry() + ); + + // It should clear the credentials if they're expired + assert!(cache + .yield_or_clear_if_expired(epoch_secs(500)) + .await + .is_none()); + assert!(cache.get().await.is_none()); + } +} diff --git a/patch/aws-config/src/connector.rs b/patch/aws-config/src/connector.rs new file mode 100644 index 0000000000000..f85a4c30d3b06 --- /dev/null +++ b/patch/aws-config/src/connector.rs @@ -0,0 +1,60 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Functionality related to creating new HTTP Connectors + +use std::sync::Arc; + +use aws_smithy_async::rt::sleep::AsyncSleep; +use aws_smithy_client::erase::DynConnector; +use aws_smithy_client::http_connector::HttpSettings; + +// unused when all crate features are disabled +/// Unwrap an [`Option`](aws_smithy_client::erase::DynConnector), and panic with a helpful error message if it's `None` +pub(crate) fn expect_connector(connector: Option) -> DynConnector { + connector.expect("A connector was not available. Either set a custom connector or enable the `rustls` and `native-tls` crate features.") +} + +#[cfg(any(feature = "rustls", feature = "native-tls"))] +fn base( + settings: &HttpSettings, + sleep: Option>, +) -> aws_smithy_client::hyper_ext::Builder { + let mut hyper = + aws_smithy_client::hyper_ext::Adapter::builder().timeout(&settings.http_timeout_config); + if let Some(sleep) = sleep { + hyper = hyper.sleep_impl(sleep); + } + hyper +} + +/// Given `HttpSettings` and an `AsyncSleep`, create a `DynConnector` from defaults depending on what cargo features are activated. +#[cfg(feature = "rustls")] +pub fn default_connector( + settings: &HttpSettings, + sleep: Option>, +) -> Option { + let hyper = base(settings, sleep).build(aws_smithy_client::conns::https()); + Some(DynConnector::new(hyper)) +} + +/// Given `HttpSettings` and an `AsyncSleep`, create a `DynConnector` from defaults depending on what cargo features are activated. +#[cfg(all(not(feature = "rustls"), feature = "native-tls"))] +pub fn default_connector( + settings: &HttpSettings, + sleep: Option>, +) -> Option { + let hyper = base(settings, sleep).build(aws_smithy_client::conns::native_tls()); + Some(DynConnector::new(hyper)) +} + +/// Given `HttpSettings` and an `AsyncSleep`, create a `DynConnector` from defaults depending on what cargo features are activated. +#[cfg(not(any(feature = "rustls", feature = "native-tls")))] +pub fn default_connector( + _settings: &HttpSettings, + _sleep: Option>, +) -> Option { + None +} diff --git a/patch/aws-config/src/default_provider.rs b/patch/aws-config/src/default_provider.rs new file mode 100644 index 0000000000000..4ffe879ab1200 --- /dev/null +++ b/patch/aws-config/src/default_provider.rs @@ -0,0 +1,40 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Default Provider chains for [`region`](default_provider::region), [`credentials`](default_provider::credentials), +//! [retries](default_provider::retry_config), [timeouts](default_provider::timeout_config) and [app name](default_provider::app_name). +//! +//! Typically, this module is used via [`load_from_env`](crate::load_from_env) or [`from_env`](crate::from_env). It should only be used directly +//! if you need to set custom configuration options to override the default resolution chain. + +/// Default [region](aws_types::region::Region) provider chain +/// +/// Typically, this module is used via [`load_from_env`](crate::load_from_env) or [`from_env`](crate::from_env). It should only be used directly +/// if you need to set custom configuration options to override the default resolution chain. +pub mod region; + +/// Default retry behavior configuration provider chain +/// +/// Typically, this module is used via [`load_from_env`](crate::load_from_env) or [`from_env`](crate::from_env). It should only be used directly +/// if you need to set custom configuration options to override the default resolution chain. +pub mod retry_config; + +/// Default app name provider chain +/// +/// Typically, this module is used via [`load_from_env`](crate::load_from_env) or [`from_env`](crate::from_env). It should only be used directly +/// if you need to set custom configuration options to override the default resolution chain. +pub mod app_name; + +/// Default timeout configuration provider chain +/// +/// Typically, this module is used via [`load_from_env`](crate::load_from_env) or [`from_env`](crate::from_env). It should only be used directly +/// if you need to set custom configuration options to override the default resolution chain. +pub mod timeout_config; + +/// Default credentials provider chain +/// +/// Typically, this module is used via [`load_from_env`](crate::load_from_env) or [`from_env`](crate::from_env). It should only be used directly +/// if you need to set custom configuration options like [`region`](credentials::Builder::region) or [`profile_name`](credentials::Builder::profile_name). +pub mod credentials; diff --git a/patch/aws-config/src/default_provider/app_name.rs b/patch/aws-config/src/default_provider/app_name.rs new file mode 100644 index 0000000000000..2909b170a543d --- /dev/null +++ b/patch/aws-config/src/default_provider/app_name.rs @@ -0,0 +1,95 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use crate::environment::app_name::EnvironmentVariableAppNameProvider; +use crate::profile::app_name; +use crate::provider_config::ProviderConfig; +use aws_types::app_name::AppName; + +/// Default App Name Provider chain +/// +/// This provider will check the following sources in order: +/// 1. [Environment variables](EnvironmentVariableAppNameProvider) +/// 2. [Profile file](crate::profile::app_name::ProfileFileAppNameProvider) +pub fn default_provider() -> Builder { + Builder::default() +} + +/// Default provider builder for [`AppName`] +#[derive(Default)] +pub struct Builder { + env_provider: EnvironmentVariableAppNameProvider, + profile_file: app_name::Builder, +} + +impl Builder { + #[doc(hidden)] + /// Configure the default chain + /// + /// Exposed for overriding the environment when unit-testing providers + pub fn configure(mut self, configuration: &ProviderConfig) -> Self { + self.env_provider = EnvironmentVariableAppNameProvider::new_with_env(configuration.env()); + self.profile_file = self.profile_file.configure(configuration); + self + } + + /// Override the profile name used by this provider + pub fn profile_name(mut self, name: &str) -> Self { + self.profile_file = self.profile_file.profile_name(name); + self + } + + /// Build an [`AppName`] from the default chain + pub async fn app_name(self) -> Option { + self.env_provider + .app_name() + .or(self.profile_file.build().app_name().await) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::provider_config::ProviderConfig; + use crate::test_case::no_traffic_connector; + use aws_types::os_shim_internal::{Env, Fs}; + + #[tokio::test] + async fn prefer_env_to_profile() { + let fs = Fs::from_slice(&[("test_config", "[default]\nsdk-ua-app-id = wrong")]); + let env = Env::from_slice(&[ + ("AWS_CONFIG_FILE", "test_config"), + ("AWS_SDK_UA_APP_ID", "correct"), + ]); + let app_name = Builder::default() + .configure( + &ProviderConfig::no_configuration() + .with_fs(fs) + .with_env(env) + .with_http_connector(no_traffic_connector()), + ) + .app_name() + .await; + + assert_eq!(Some(AppName::new("correct").unwrap()), app_name); + } + + #[tokio::test] + async fn load_from_profile() { + let fs = Fs::from_slice(&[("test_config", "[default]\nsdk-ua-app-id = correct")]); + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "test_config")]); + let app_name = Builder::default() + .configure( + &ProviderConfig::empty() + .with_fs(fs) + .with_env(env) + .with_http_connector(no_traffic_connector()), + ) + .app_name() + .await; + + assert_eq!(Some(AppName::new("correct").unwrap()), app_name); + } +} diff --git a/patch/aws-config/src/default_provider/credentials.rs b/patch/aws-config/src/default_provider/credentials.rs new file mode 100644 index 0000000000000..16a79af63f79b --- /dev/null +++ b/patch/aws-config/src/default_provider/credentials.rs @@ -0,0 +1,506 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::borrow::Cow; +use std::time::Duration; + +use aws_types::credentials::{self, future, ProvideCredentials}; +use tracing::Instrument; + +use crate::environment::credentials::EnvironmentVariableCredentialsProvider; +use crate::meta::credentials::{CredentialsProviderChain, LazyCachingCredentialsProvider}; +use crate::meta::region::ProvideRegion; +use crate::provider_config::ProviderConfig; + +#[cfg(any(feature = "rustls", feature = "native-tls"))] +/// Default Credentials Provider chain +/// +/// The region from the default region provider will be used +pub async fn default_provider() -> impl ProvideCredentials { + DefaultCredentialsChain::builder().build().await +} + +/// Default AWS Credential Provider Chain +/// +/// Resolution order: +/// 1. Environment variables: [`EnvironmentVariableCredentialsProvider`](crate::environment::EnvironmentVariableCredentialsProvider) +/// 2. Shared config (`~/.aws/config`, `~/.aws/credentials`): [`SharedConfigCredentialsProvider`](crate::profile::ProfileFileCredentialsProvider) +/// 3. [Web Identity Tokens](crate::web_identity_token) +/// 4. ECS (IAM Roles for Tasks) & General HTTP credentials: [`ecs`](crate::ecs) +/// 5. [EC2 IMDSv2](crate::imds) +/// +/// The outer provider is wrapped in a refreshing cache. +/// +/// More providers are a work in progress. +/// +/// # Examples +/// Create a default chain with a custom region: +/// ```no_run +/// use aws_types::region::Region; +/// use aws_config::default_provider::credentials::DefaultCredentialsChain; +/// let credentials_provider = DefaultCredentialsChain::builder() +/// .region(Region::new("us-west-1")) +/// .build(); +/// ``` +/// +/// Create a default chain with no overrides: +/// ```no_run +/// use aws_config::default_provider::credentials::DefaultCredentialsChain; +/// let credentials_provider = DefaultCredentialsChain::builder().build(); +/// ``` +/// +/// Create a default chain that uses a different profile: +/// ```no_run +/// use aws_config::default_provider::credentials::DefaultCredentialsChain; +/// let credentials_provider = DefaultCredentialsChain::builder() +/// .profile_name("otherprofile") +/// .build(); +/// ``` +#[derive(Debug)] +pub struct DefaultCredentialsChain(LazyCachingCredentialsProvider); + +impl DefaultCredentialsChain { + /// Builder for `DefaultCredentialsChain` + pub fn builder() -> Builder { + Builder::default() + } + + async fn credentials(&self) -> credentials::Result { + self.0 + .provide_credentials() + .instrument(tracing::info_span!("provide_credentials", provider = %"default_chain")) + .await + } +} + +impl ProvideCredentials for DefaultCredentialsChain { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a> + where + Self: 'a, + { + future::ProvideCredentials::new(self.credentials()) + } +} + +/// Builder for [`DefaultCredentialsChain`](DefaultCredentialsChain) +#[derive(Default)] +pub struct Builder { + profile_file_builder: crate::profile::credentials::Builder, + web_identity_builder: crate::web_identity_token::Builder, + imds_builder: crate::imds::credentials::Builder, + ecs_builder: crate::ecs::Builder, + credential_cache: crate::meta::credentials::lazy_caching::Builder, + region_override: Option>, + region_chain: crate::default_provider::region::Builder, + conf: Option, +} + +impl Builder { + /// Sets the region used when making requests to AWS services + /// + /// When unset, the default region resolver chain will be used. + pub fn region(mut self, region: impl ProvideRegion + 'static) -> Self { + self.set_region(Some(region)); + self + } + + /// Sets the region used when making requests to AWS services + /// + /// When unset, the default region resolver chain will be used. + pub fn set_region(&mut self, region: Option) -> &mut Self { + self.region_override = region.map(|provider| Box::new(provider) as _); + self + } + + /// Timeout for the entire credential loading chain. + /// + /// Defaults to 5 seconds. + pub fn load_timeout(mut self, timeout: Duration) -> Self { + self.set_load_timeout(Some(timeout)); + self + } + + /// Timeout for the entire credential loading chain. + /// + /// Defaults to 5 seconds. + pub fn set_load_timeout(&mut self, timeout: Option) -> &mut Self { + self.credential_cache.set_load_timeout(timeout); + self + } + + /// Amount of time before the actual credential expiration time + /// where credentials are considered expired. + /// + /// For example, if credentials are expiring in 15 minutes, and the buffer time is 10 seconds, + /// then any requests made after 14 minutes and 50 seconds will load new credentials. + /// + /// Defaults to 10 seconds. + pub fn buffer_time(mut self, buffer_time: Duration) -> Self { + self.set_buffer_time(Some(buffer_time)); + self + } + + /// Amount of time before the actual credential expiration time + /// where credentials are considered expired. + /// + /// For example, if credentials are expiring in 15 minutes, and the buffer time is 10 seconds, + /// then any requests made after 14 minutes and 50 seconds will load new credentials. + /// + /// Defaults to 10 seconds. + pub fn set_buffer_time(&mut self, buffer_time: Option) -> &mut Self { + self.credential_cache.set_buffer_time(buffer_time); + self + } + + /// Default expiration time to set on credentials if they don't have an expiration time. + /// + /// This is only used if the given [`ProvideCredentials`] returns + /// [`Credentials`](aws_types::Credentials) that don't have their `expiry` set. + /// This must be at least 15 minutes. + /// + /// Defaults to 15 minutes. + pub fn default_credential_expiration(mut self, duration: Duration) -> Self { + self.set_default_credential_expiration(Some(duration)); + self + } + + /// Default expiration time to set on credentials if they don't have an expiration time. + /// + /// This is only used if the given [`ProvideCredentials`] returns + /// [`Credentials`](aws_types::Credentials) that don't have their `expiry` set. + /// This must be at least 15 minutes. + /// + /// Defaults to 15 minutes. + pub fn set_default_credential_expiration(&mut self, duration: Option) -> &mut Self { + self.credential_cache + .set_default_credential_expiration(duration); + self + } + + /// Add an additional credential source for the ProfileProvider + /// + /// Assume role profiles may specify named credential sources: + /// ```ini + /// [default] + /// role_arn = arn:aws:iam::123456789:role/RoleA + /// credential_source = MyCustomProvider + /// ``` + /// + /// Typically, these are built-in providers like `Environment`, however, custom sources may + /// also be used. + /// + /// See [`with_custom_provider`](crate::profile::credentials::Builder::with_custom_provider) + pub fn with_custom_credential_source( + mut self, + name: impl Into>, + provider: impl ProvideCredentials + 'static, + ) -> Self { + self.profile_file_builder = self + .profile_file_builder + .with_custom_provider(name, provider); + self + } + + /// Override the profile name used by this provider + /// + /// When unset, the value of the `AWS_PROFILE` environment variable will be used. + pub fn profile_name(mut self, name: &str) -> Self { + self.profile_file_builder = self.profile_file_builder.profile_name(name); + self.region_chain = self.region_chain.profile_name(name); + self + } + + /// Override the configuration used for this provider + pub fn configure(mut self, config: ProviderConfig) -> Self { + self.region_chain = self.region_chain.configure(&config); + self.conf = Some(config); + self + } + + /// Creates a `DefaultCredentialsChain` + /// + /// ## Panics + /// This function will panic if no connector has been set and neither `rustls` and `native-tls` + /// features have both been disabled. + pub async fn build(self) -> DefaultCredentialsChain { + let region = match self.region_override { + Some(provider) => provider.region().await, + None => self.region_chain.build().region().await, + }; + + let conf = self.conf.unwrap_or_default().with_region(region); + + let env_provider = EnvironmentVariableCredentialsProvider::new_with_env(conf.env()); + let profile_provider = self.profile_file_builder.configure(&conf).build(); + let web_identity_token_provider = self.web_identity_builder.configure(&conf).build(); + let imds_provider = self.imds_builder.configure(&conf).build(); + let ecs_provider = self.ecs_builder.configure(&conf).build(); + + let provider_chain = CredentialsProviderChain::first_try("Environment", env_provider) + .or_else("Profile", profile_provider) + .or_else("WebIdentityToken", web_identity_token_provider) + .or_else("EcsContainer", ecs_provider) + .or_else("Ec2InstanceMetadata", imds_provider); + let cached_provider = self.credential_cache.configure(&conf).load(provider_chain); + + DefaultCredentialsChain(cached_provider.build()) + } +} + +#[cfg(test)] +mod test { + use tracing_test::traced_test; + + use aws_smithy_types::retry::{RetryConfig, RetryMode}; + use aws_types::credentials::ProvideCredentials; + use aws_types::os_shim_internal::{Env, Fs}; + + use crate::default_provider::credentials::DefaultCredentialsChain; + use crate::default_provider::retry_config; + use crate::provider_config::ProviderConfig; + use crate::test_case::TestEnvironment; + + /// Test generation macro + /// + /// # Examples + /// **Run the test case in `test-data/default-provider-chain/test_name` + /// ```no_run + /// make_test!(test_name); + /// ``` + /// + /// **Update (responses are replayed but new requests are recorded) the test case**: + /// ```no_run + /// make_test!(update: test_name) + /// ``` + /// + /// **Run the test case against a real HTTPS connection:** + /// > Note: Be careful to remove sensitive information before committing. Always use a temporary + /// > AWS account when recording live traffic. + /// ```no_run + /// make_test!(live: test_name) + /// ``` + macro_rules! make_test { + ($name: ident) => { + make_test!($name, execute); + }; + (update: $name:ident) => { + make_test!($name, execute_and_update); + }; + (live: $name:ident) => { + make_test!($name, execute_from_live_traffic); + }; + ($name: ident, $func: ident) => { + #[traced_test] + #[tokio::test] + async fn $name() { + crate::test_case::TestEnvironment::from_dir(concat!( + "./test-data/default-provider-chain/", + stringify!($name) + )) + .unwrap() + .$func(|conf| async { + crate::default_provider::credentials::Builder::default() + .configure(conf) + .build() + .await + }) + .await + } + }; + } + + make_test!(prefer_environment); + make_test!(profile_static_keys); + make_test!(web_identity_token_env); + make_test!(web_identity_source_profile_no_env); + make_test!(web_identity_token_invalid_jwt); + make_test!(web_identity_token_source_profile); + make_test!(web_identity_token_profile); + make_test!(profile_name); + make_test!(profile_overrides_web_identity); + make_test!(imds_token_fail); + + make_test!(imds_no_iam_role); + make_test!(imds_default_chain_error); + make_test!(imds_default_chain_success); + make_test!(imds_assume_role); + make_test!(imds_config_with_no_creds); + make_test!(imds_disabled); + make_test!(imds_default_chain_retries); + + make_test!(ecs_assume_role); + make_test!(ecs_credentials); + + make_test!(sso_assume_role); + make_test!(sso_no_token_file); + + #[tokio::test] + async fn profile_name_override() { + let (_, conf) = + TestEnvironment::from_dir("./test-data/default-provider-chain/profile_static_keys") + .unwrap() + .provider_config() + .await; + let provider = DefaultCredentialsChain::builder() + .profile_name("secondary") + .configure(conf) + .build() + .await; + let creds = provider + .provide_credentials() + .await + .expect("creds should load"); + assert_eq!(creds.access_key_id(), "correct_key_secondary"); + } + + #[tokio::test] + #[traced_test] + async fn no_providers_configured_err() { + use aws_smithy_async::rt::sleep::TokioSleep; + use aws_smithy_client::erase::boxclone::BoxCloneService; + use aws_smithy_client::never::NeverConnected; + use aws_types::credentials::CredentialsError; + use aws_types::os_shim_internal::TimeSource; + + tokio::time::pause(); + let conf = ProviderConfig::no_configuration() + .with_tcp_connector(BoxCloneService::new(NeverConnected::new())) + .with_time_source(TimeSource::real()) + .with_sleep(TokioSleep::new()); + let provider = DefaultCredentialsChain::builder() + .configure(conf) + .build() + .await; + let creds = provider + .provide_credentials() + .await + .expect_err("no providers enabled"); + assert!( + matches!(creds, CredentialsError::CredentialsNotLoaded { .. }), + "should be NotLoaded: {:?}", + creds + ) + } + + #[tokio::test] + async fn test_returns_default_retry_config_from_empty_profile() { + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "config")]); + let fs = Fs::from_slice(&[("config", "[default]\n")]); + + let provider_config = ProviderConfig::no_configuration().with_env(env).with_fs(fs); + + let actual_retry_config = retry_config::default_provider() + .configure(&provider_config) + .retry_config() + .await; + + let expected_retry_config = RetryConfig::new(); + + assert_eq!(actual_retry_config, expected_retry_config); + // This is redundant but it's really important to make sure that + // we're setting these exact values by default so we check twice + assert_eq!(actual_retry_config.max_attempts(), 3); + assert_eq!(actual_retry_config.mode(), RetryMode::Standard); + } + + #[tokio::test] + async fn test_no_retry_config_in_empty_profile() { + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "config")]); + let fs = Fs::from_slice(&[("config", "[default]\n")]); + + let provider_config = ProviderConfig::no_configuration().with_env(env).with_fs(fs); + + let actual_retry_config = retry_config::default_provider() + .configure(&provider_config) + .retry_config() + .await; + + let expected_retry_config = RetryConfig::new(); + + assert_eq!(actual_retry_config, expected_retry_config) + } + + #[tokio::test] + async fn test_creation_of_retry_config_from_profile() { + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "config")]); + // TODO(https://github.com/awslabs/aws-sdk-rust/issues/247): standard is the default mode; + // this test would be better if it was setting it to adaptive mode + // adaptive mode is currently unsupported so that would panic + let fs = Fs::from_slice(&[( + "config", + // If the lines with the vars have preceding spaces, they don't get read + r#"[default] +max_attempts = 1 +retry_mode = standard + "#, + )]); + + let provider_config = ProviderConfig::no_configuration().with_env(env).with_fs(fs); + + let actual_retry_config = retry_config::default_provider() + .configure(&provider_config) + .retry_config() + .await; + + let expected_retry_config = RetryConfig::new() + .with_max_attempts(1) + .with_retry_mode(RetryMode::Standard); + + assert_eq!(actual_retry_config, expected_retry_config) + } + + #[tokio::test] + async fn test_env_retry_config_takes_precedence_over_profile_retry_config() { + let env = Env::from_slice(&[ + ("AWS_CONFIG_FILE", "config"), + ("AWS_MAX_ATTEMPTS", "42"), + ("AWS_RETRY_MODE", "standard"), + ]); + // TODO(https://github.com/awslabs/aws-sdk-rust/issues/247) standard is the default mode; + // this test would be better if it was setting it to adaptive mode + // adaptive mode is currently unsupported so that would panic + let fs = Fs::from_slice(&[( + "config", + // If the lines with the vars have preceding spaces, they don't get read + r#"[default] +max_attempts = 88 +retry_mode = standard + "#, + )]); + + let provider_config = ProviderConfig::no_configuration().with_env(env).with_fs(fs); + + let actual_retry_config = retry_config::default_provider() + .configure(&provider_config) + .retry_config() + .await; + + let expected_retry_config = RetryConfig::new() + .with_max_attempts(42) + .with_retry_mode(RetryMode::Standard); + + assert_eq!(actual_retry_config, expected_retry_config) + } + + #[tokio::test] + #[should_panic = "failed to parse max attempts set by aws profile: invalid digit found in string"] + async fn test_invalid_profile_retry_config_panics() { + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "config")]); + let fs = Fs::from_slice(&[( + "config", + // If the lines with the vars have preceding spaces, they don't get read + r#"[default] +max_attempts = potato + "#, + )]); + + let provider_config = ProviderConfig::no_configuration().with_env(env).with_fs(fs); + + let _ = retry_config::default_provider() + .configure(&provider_config) + .retry_config() + .await; + } +} diff --git a/patch/aws-config/src/default_provider/region.rs b/patch/aws-config/src/default_provider/region.rs new file mode 100644 index 0000000000000..0da5d3936884b --- /dev/null +++ b/patch/aws-config/src/default_provider/region.rs @@ -0,0 +1,79 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_types::region::Region; + +use crate::environment::region::EnvironmentVariableRegionProvider; +use crate::meta::region::{ProvideRegion, RegionProviderChain}; +use crate::provider_config::ProviderConfig; +use crate::{imds, profile}; + +/// Default Region Provider chain +/// +/// This provider will check the following sources in order: +/// 1. [Environment variables](EnvironmentVariableRegionProvider) +/// 2. [Profile file](crate::profile::region::ProfileFileRegionProvider) +/// 3. [EC2 IMDSv2](crate::imds::region) +pub fn default_provider() -> impl ProvideRegion { + Builder::default().build() +} + +/// Default region provider chain +#[derive(Debug)] +pub struct DefaultRegionChain(RegionProviderChain); + +impl DefaultRegionChain { + /// Load a region from this chain + pub async fn region(&self) -> Option { + self.0.region().await + } + + /// Builder for [`DefaultRegionChain`] + pub fn builder() -> Builder { + Builder::default() + } +} + +/// Builder for [DefaultRegionChain] +#[derive(Default)] +pub struct Builder { + env_provider: EnvironmentVariableRegionProvider, + profile_file: profile::region::Builder, + imds: imds::region::Builder, +} + +impl Builder { + #[doc(hidden)] + /// Configure the default chain + /// + /// Exposed for overriding the environment when unit-testing providers + pub fn configure(mut self, configuration: &ProviderConfig) -> Self { + self.env_provider = EnvironmentVariableRegionProvider::new_with_env(configuration.env()); + self.profile_file = self.profile_file.configure(configuration); + self.imds = self.imds.configure(configuration); + self + } + + /// Override the profile name used by this provider + pub fn profile_name(mut self, name: &str) -> Self { + self.profile_file = self.profile_file.profile_name(name); + self + } + + /// Build a [DefaultRegionChain] + pub fn build(self) -> DefaultRegionChain { + DefaultRegionChain( + RegionProviderChain::first_try(self.env_provider) + .or_else(self.profile_file.build()) + .or_else(self.imds.build()), + ) + } +} + +impl ProvideRegion for DefaultRegionChain { + fn region(&self) -> crate::meta::region::future::ProvideRegion { + ProvideRegion::region(&self.0) + } +} diff --git a/patch/aws-config/src/default_provider/retry_config.rs b/patch/aws-config/src/default_provider/retry_config.rs new file mode 100644 index 0000000000000..d71bb891c8b00 --- /dev/null +++ b/patch/aws-config/src/default_provider/retry_config.rs @@ -0,0 +1,104 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_smithy_types::retry::RetryConfig; + +use crate::environment::retry_config::EnvironmentVariableRetryConfigProvider; +use crate::profile; +use crate::provider_config::ProviderConfig; + +/// Default RetryConfig Provider chain +/// +/// Unlike other "providers" `RetryConfig` has no related `RetryConfigProvider` trait. Instead, +/// a builder struct is returned which has a similar API. +/// +/// This provider will check the following sources in order: +/// 1. [Environment variables](EnvironmentVariableRetryConfigProvider) +/// 2. [Profile file](crate::profile::retry_config::ProfileFileRetryConfigProvider) +/// +/// # Example +/// +/// When running [`aws_config::from_env()`](crate::from_env()), a [`ConfigLoader`](crate::ConfigLoader) +/// is created that will then create a [`RetryConfig`] from the default_provider. There is no +/// need to call `default_provider` and the example below is only for illustration purposes. +/// +/// ```no_run +/// # use std::error::Error; +/// # #[tokio::main] +/// # async fn main() -> Result<(), Box> { +/// use aws_config::default_provider::retry_config; +/// +/// // Load a retry config from a specific profile +/// let retry_config = retry_config::default_provider() +/// .profile_name("other_profile") +/// .retry_config() +/// .await; +/// let config = aws_config::from_env() +/// // Override the retry config set by the default profile +/// .retry_config(retry_config) +/// .load() +/// .await; +/// // instantiate a service client: +/// // ::Client::new(&config); +/// # Ok(()) +/// # } +/// ``` +pub fn default_provider() -> Builder { + Builder::default() +} + +/// Builder for RetryConfig that checks the environment and aws profile for configuration +#[derive(Default)] +pub struct Builder { + env_provider: EnvironmentVariableRetryConfigProvider, + profile_file: profile::retry_config::Builder, +} + +impl Builder { + /// Configure the default chain + /// + /// Exposed for overriding the environment when unit-testing providers + pub fn configure(mut self, configuration: &ProviderConfig) -> Self { + self.env_provider = + EnvironmentVariableRetryConfigProvider::new_with_env(configuration.env()); + self.profile_file = self.profile_file.configure(configuration); + self + } + + /// Override the profile name used by this provider + pub fn profile_name(mut self, name: &str) -> Self { + self.profile_file = self.profile_file.profile_name(name); + self + } + + /// Attempt to create a [RetryConfig](aws_smithy_types::retry::RetryConfig) from following sources in order: + /// 1. [Environment variables](crate::environment::retry_config::EnvironmentVariableRetryConfigProvider) + /// 2. [Profile file](crate::profile::retry_config::ProfileFileRetryConfigProvider) + /// 3. [RetryConfig::default()](aws_smithy_types::retry::RetryConfig::default) + /// + /// Precedence is considered on a per-field basis + /// + /// # Panics + /// + /// - Panics if the `AWS_MAX_ATTEMPTS` env var or `max_attempts` profile var is set to 0 + /// - Panics if the `AWS_RETRY_MODE` env var or `retry_mode` profile var is set to "adaptive" (it's not yet supported) + pub async fn retry_config(self) -> RetryConfig { + // Both of these can return errors due to invalid config settings and we want to surface those as early as possible + // hence, we'll panic if any config values are invalid (missing values are OK though) + // We match this instead of unwrapping so we can print the error with the `Display` impl instead of the `Debug` impl that unwrap uses + let builder_from_env = match self.env_provider.retry_config_builder() { + Ok(retry_config_builder) => retry_config_builder, + Err(err) => panic!("{}", err), + }; + let builder_from_profile = match self.profile_file.build().retry_config_builder().await { + Ok(retry_config_builder) => retry_config_builder, + Err(err) => panic!("{}", err), + }; + + builder_from_env + .take_unset_from(builder_from_profile) + .build() + } +} diff --git a/patch/aws-config/src/default_provider/timeout_config.rs b/patch/aws-config/src/default_provider/timeout_config.rs new file mode 100644 index 0000000000000..f733237832cc5 --- /dev/null +++ b/patch/aws-config/src/default_provider/timeout_config.rs @@ -0,0 +1,97 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_smithy_types::timeout; + +use crate::environment::timeout_config::EnvironmentVariableTimeoutConfigProvider; +use crate::profile; +use crate::provider_config::ProviderConfig; + +/// Default [`timeout::Config`] Provider chain +/// +/// Unlike other credentials and region, [`timeout::Config`] has no related `TimeoutConfigProvider` trait. Instead, +/// a builder struct is returned which has a similar API. +/// +/// This provider will check the following sources in order: +/// 1. [Environment variables](EnvironmentVariableTimeoutConfigProvider) +/// 2. [Profile file](crate::profile::timeout_config::ProfileFileTimeoutConfigProvider) (`~/.aws/config`) +/// +/// # Example +/// +/// ```no_run +/// # use std::error::Error; +/// # #[tokio::main] +/// # async fn main() { +/// use aws_config::default_provider::timeout_config; +/// +/// // Load a timeout config from a specific profile +/// let timeout_config = timeout_config::default_provider() +/// .profile_name("other_profile") +/// .timeout_config() +/// .await; +/// let config = aws_config::from_env() +/// // Override the timeout config set by the default profile +/// .timeout_config(timeout_config) +/// .load() +/// .await; +/// // instantiate a service client: +/// // ::Client::new(&config); +/// # } +/// ``` +pub fn default_provider() -> Builder { + Builder::default() +} + +/// Builder for [`timeout::Config`](aws_smithy_types::timeout::Config) that checks the environment variables and AWS profile files for configuration +#[derive(Default)] +pub struct Builder { + env_provider: EnvironmentVariableTimeoutConfigProvider, + profile_file: profile::timeout_config::Builder, +} + +impl Builder { + /// Configure the default chain + /// + /// Exposed for overriding the environment when unit-testing providers + pub fn configure(mut self, configuration: &ProviderConfig) -> Self { + self.env_provider = + EnvironmentVariableTimeoutConfigProvider::new_with_env(configuration.env()); + self.profile_file = self.profile_file.configure(configuration); + self + } + + /// Override the profile name used by this provider + pub fn profile_name(mut self, name: &str) -> Self { + self.profile_file = self.profile_file.profile_name(name); + self + } + + /// Attempt to create a [`timeout::Config`](aws_smithy_types::timeout::Config) from following sources in order: + /// 1. [Environment variables](crate::environment::timeout_config::EnvironmentVariableTimeoutConfigProvider) + /// 2. [Profile file](crate::profile::timeout_config::ProfileFileTimeoutConfigProvider) + /// + /// Precedence is considered on a per-field basis. If no timeout is specified, requests will never time out. + /// + /// # Panics + /// + /// This will panic if: + /// - a timeout is set to `NaN`, a negative number, or infinity + /// - a timeout can't be parsed as a floating point number + pub async fn timeout_config(self) -> timeout::Config { + // Both of these can return errors due to invalid config settings and we want to surface those as early as possible + // hence, we'll panic if any config values are invalid (missing values are OK though) + // We match this instead of unwrapping so we can print the error with the `Display` impl instead of the `Debug` impl that unwrap uses + let builder_from_env = match self.env_provider.timeout_config() { + Ok(timeout_config_builder) => timeout_config_builder, + Err(err) => panic!("{}", err), + }; + let builder_from_profile = match self.profile_file.build().timeout_config().await { + Ok(timeout_config_builder) => timeout_config_builder, + Err(err) => panic!("{}", err), + }; + + builder_from_env.take_unset_from(builder_from_profile) + } +} diff --git a/patch/aws-config/src/ecs.rs b/patch/aws-config/src/ecs.rs new file mode 100644 index 0000000000000..4b7f1f487a815 --- /dev/null +++ b/patch/aws-config/src/ecs.rs @@ -0,0 +1,750 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Ecs Credentials Provider +//! +//! This credential provider is frequently used with an AWS-provided credentials service (e.g. +//! [IAM Roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)). +//! However, it's possible to use environment variables to configure this provider to use your own +//! credentials sources. +//! +//! This provider is part of the [default credentials chain](crate::default_provider::credentials). +//! +//! ## Configuration +//! **First**: It will check the value of `$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`. It will use this +//! to construct a URI rooted at `http://169.254.170.2`. For example, if the value of the environment +//! variable was `/credentials`, the SDK would look for credentials at `http://169.254.170.2/credentials`. +//! +//! **Next**: It wil check the value of `$AWS_CONTAINER_CREDENTIALS_FULL_URI`. This specifies the full +//! URL to load credentials. The URL MUST satisfy one of the following two properties: +//! 1. The URL begins with `https` +//! 2. The URL refers to a loopback device. If a URL contains a domain name instead of an IP address, +//! a DNS lookup will be performed. ALL resolved IP addresses MUST refer to a loopback interface, or +//! the credentials provider will return `CredentialsError::InvalidConfiguration` +//! +//! **Finally**: It will check the value of `$AWS_CONTAINER_AUTHORIZATION_TOKEN`. If this is set, the +//! value will be passed in the `Authorization` header. +//! +//! ## Credentials Format +//! Credentials MUST be returned in a JSON format: +//! ```json +//! { +//! "AccessKeyId" : "MUA...", +//! "SecretAccessKey" : "/7PC5om....", +//! "Token" : "AQoDY....=", +//! "Expiration" : "2016-02-25T06:03:31Z" +//! } +//! ``` +//! +//! Credentials errors MAY be returned with a `code` and `message` field: +//! ```json +//! { +//! "code": "ErrorCode", +//! "message": "Helpful error message." +//! } +//! ``` + +use std::error::Error; +use std::fmt::{Display, Formatter}; +use std::io; +use std::net::IpAddr; + +use aws_smithy_client::erase::boxclone::BoxCloneService; +use aws_smithy_http::endpoint::Endpoint; +use aws_types::credentials; +use aws_types::credentials::{future, CredentialsError, ProvideCredentials}; +use http::uri::{InvalidUri, Scheme}; +use http::{HeaderValue, Uri}; +use tower::{Service, ServiceExt}; + +use crate::http_credential_provider::HttpCredentialProvider; +use crate::provider_config::ProviderConfig; +use aws_types::os_shim_internal::Env; +use http::header::InvalidHeaderValue; +use std::time::Duration; +use tokio::sync::OnceCell; + +// URL from https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint-v2.html +const BASE_HOST: &str = "http://169.254.170.2"; +const ENV_RELATIVE_URI: &str = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; +const ENV_FULL_URI: &str = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; +const ENV_AUTHORIZATION: &str = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; + +/// Credential provider for ECS and generalized HTTP credentials +/// +/// See the [module](crate::ecs) documentation for more details. +/// +/// This credential provider is part of the default chain. +#[derive(Debug)] +pub struct EcsCredentialsProvider { + inner: OnceCell, + env: Env, + builder: Builder, +} + +impl EcsCredentialsProvider { + /// Builder for [`EcsCredentialsProvider`] + pub fn builder() -> Builder { + Builder::default() + } + + /// Load credentials from this credentials provider + pub async fn credentials(&self) -> credentials::Result { + let auth = match self.env.get(ENV_AUTHORIZATION).ok() { + Some(auth) => Some(HeaderValue::from_str(&auth).map_err(|err| { + tracing::warn!(token = %auth, "invalid auth token"); + CredentialsError::invalid_configuration(EcsConfigurationErr::InvalidAuthToken { + err, + value: auth, + }) + })?), + None => None, + }; + match self.provider().await { + Provider::NotConfigured => { + Err(CredentialsError::not_loaded("ECS provider not configured")) + } + Provider::InvalidConfiguration(err) => { + Err(CredentialsError::invalid_configuration(format!("{}", err))) + } + Provider::Configured(provider) => provider.credentials(auth).await, + } + } + + async fn provider(&self) -> &Provider { + self.inner + .get_or_init(|| Provider::make(self.builder.clone())) + .await + } +} + +impl ProvideCredentials for EcsCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a> + where + Self: 'a, + { + future::ProvideCredentials::new(self.credentials()) + } +} + +/// Inner Provider that can record failed configuration state +#[derive(Debug)] +enum Provider { + Configured(HttpCredentialProvider), + NotConfigured, + InvalidConfiguration(EcsConfigurationErr), +} + +impl Provider { + async fn uri(env: Env, dns: Option) -> Result { + let relative_uri = env.get(ENV_RELATIVE_URI).ok(); + let full_uri = env.get(ENV_FULL_URI).ok(); + if let Some(relative_uri) = relative_uri { + Self::build_full_uri(relative_uri) + } else if let Some(full_uri) = full_uri { + let mut dns = dns.or_else(tokio_dns); + validate_full_uri(&full_uri, dns.as_mut()) + .await + .map_err(|err| EcsConfigurationErr::InvalidFullUri { err, uri: full_uri }) + } else { + Err(EcsConfigurationErr::NotConfigured) + } + } + + pub async fn make(builder: Builder) -> Self { + let provider_config = builder.provider_config.unwrap_or_default(); + let env = provider_config.env(); + let uri = match Self::uri(env, builder.dns).await { + Ok(uri) => uri, + Err(EcsConfigurationErr::NotConfigured) => return Provider::NotConfigured, + Err(err) => return Provider::InvalidConfiguration(err), + }; + let http_provider = HttpCredentialProvider::builder() + .configure(&provider_config) + .connect_timeout(builder.connect_timeout) + .read_timeout(builder.read_timeout) + .build("EcsContainer", uri); + Provider::Configured(http_provider) + } + + fn build_full_uri(relative_uri: String) -> Result { + let mut relative_uri = match relative_uri.parse::() { + Ok(uri) => uri, + Err(invalid_uri) => { + tracing::warn!(uri = ?invalid_uri, "invalid URI loaded from environment"); + return Err(EcsConfigurationErr::InvalidRelativeUri { + err: invalid_uri, + uri: relative_uri, + }); + } + }; + let endpoint = Endpoint::immutable(Uri::from_static(BASE_HOST)); + endpoint.set_endpoint(&mut relative_uri, None); + Ok(relative_uri) + } +} + +#[derive(Debug)] +enum EcsConfigurationErr { + InvalidRelativeUri { + err: InvalidUri, + uri: String, + }, + InvalidFullUri { + err: InvalidFullUriError, + uri: String, + }, + InvalidAuthToken { + err: InvalidHeaderValue, + value: String, + }, + NotConfigured, +} + +impl Display for EcsConfigurationErr { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + EcsConfigurationErr::InvalidRelativeUri { err, uri } => write!( + f, + "invalid relative URI for ECS provider ({}): {}", + err, uri + ), + EcsConfigurationErr::InvalidFullUri { err, uri } => { + write!(f, "invalid full URI for ECS provider ({}): {}", err, uri) + } + EcsConfigurationErr::NotConfigured => write!( + f, + "No environment variables were set to configure ECS provider" + ), + EcsConfigurationErr::InvalidAuthToken { err, value } => write!( + f, + "`{}` could not be used as a header value for the auth token. {}", + value, err + ), + } + } +} + +impl Error for EcsConfigurationErr { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match &self { + EcsConfigurationErr::InvalidRelativeUri { err, .. } => Some(err), + EcsConfigurationErr::InvalidFullUri { err, .. } => Some(err), + _ => None, + } + } +} + +/// Builder for [`EcsCredentialsProvider`] +#[derive(Default, Debug, Clone)] +pub struct Builder { + provider_config: Option, + dns: Option, + connect_timeout: Option, + read_timeout: Option, +} + +impl Builder { + /// Override the configuration used for this provider + pub fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.provider_config = Some(provider_config.clone()); + self + } + + /// Override the DNS resolver used to validate URIs + /// + /// URIs must refer to loopback addresses. The `DnsService` is used to retrieve IP addresses for + /// a given domain. + pub fn dns(mut self, dns: DnsService) -> Self { + self.dns = Some(dns); + self + } + + /// Override the connect timeout for the HTTP client + /// + /// This value defaults to 2 seconds + pub fn connect_timeout(mut self, timeout: Duration) -> Self { + self.connect_timeout = Some(timeout); + self + } + + /// Override the read timeout for the HTTP client + /// + /// This value defaults to 5 seconds + pub fn read_timeout(mut self, timeout: Duration) -> Self { + self.read_timeout = Some(timeout); + self + } + + /// Create an [`EcsCredentialsProvider`] from this builder + pub fn build(self) -> EcsCredentialsProvider { + let env = self + .provider_config + .as_ref() + .map(|config| config.env()) + .unwrap_or_default(); + EcsCredentialsProvider { + inner: OnceCell::new(), + env, + builder: self, + } + } +} + +/// Invalid Full URI +/// +/// When the full URI setting is used, the URI must either be HTTPS or point to a loopback interface. +#[derive(Debug)] +#[non_exhaustive] +pub enum InvalidFullUriError { + /// The provided URI could not be parsed as a URI + #[non_exhaustive] + InvalidUri(InvalidUri), + + /// No Dns service was provided + #[non_exhaustive] + NoDnsService, + + /// The URI did not specify a host + #[non_exhaustive] + MissingHost, + + /// The URI did not refer to the loopback interface + #[non_exhaustive] + NotLoopback, + + /// DNS lookup failed when attempting to resolve the host to an IP Address for validation. + DnsLookupFailed(io::Error), +} + +impl Display for InvalidFullUriError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + InvalidFullUriError::InvalidUri(err) => write!(f, "URI was invalid: {}", err), + InvalidFullUriError::MissingHost => write!(f, "URI did not specify a host"), + InvalidFullUriError::NotLoopback => { + write!(f, "URI did not refer to the loopback interface") + } + InvalidFullUriError::DnsLookupFailed(err) => { + write!( + f, + "failed to perform DNS lookup while validating URI: {}", + err + ) + } + InvalidFullUriError::NoDnsService => write!(f, "No DNS service was provided. Enable `rt-tokio` or provide a `dns` service to the builder.") + } + } +} + +impl Error for InvalidFullUriError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match self { + InvalidFullUriError::InvalidUri(err) => Some(err), + InvalidFullUriError::DnsLookupFailed(err) => Some(err), + _ => None, + } + } +} + +/// Dns resolver interface +pub type DnsService = BoxCloneService, io::Error>; + +/// Validate that `uri` is valid to be used as a full provider URI +/// Either: +/// 1. The URL is uses `https` +/// 2. The URL refers to a loopback device. If a URL contains a domain name instead of an IP address, +/// a DNS lookup will be performed. ALL resolved IP addresses MUST refer to a loopback interface, or +/// the credentials provider will return `CredentialsError::InvalidConfiguration` +async fn validate_full_uri( + uri: &str, + dns: Option<&mut DnsService>, +) -> Result { + let uri = uri + .parse::() + .map_err(InvalidFullUriError::InvalidUri)?; + if uri.scheme() == Some(&Scheme::HTTPS) { + return Ok(uri); + } + // For HTTP URIs, we need to validate that it points to a loopback address + let host = uri.host().ok_or(InvalidFullUriError::MissingHost)?; + let is_loopback = match host.parse::() { + Ok(addr) => addr.is_loopback(), + Err(_domain_name) => { + let dns = dns.ok_or(InvalidFullUriError::NoDnsService)?; + dns.ready().await.map_err(InvalidFullUriError::DnsLookupFailed)? + .call(host.to_owned()) + .await + .map_err(InvalidFullUriError::DnsLookupFailed)? + .iter() + .all(|addr| { + if !addr.is_loopback() { + tracing::warn!( + addr = ?addr, + "HTTP credential provider cannot be used: Address does not resolve to the loopback interface." + ) + }; + addr.is_loopback() + }) + } + }; + match is_loopback { + true => Ok(uri), + false => Err(InvalidFullUriError::NotLoopback), + } +} + +#[cfg(not(feature = "rt-tokio"))] +fn tokio_dns() -> Option { + None +} + +/// DNS resolver that uses tokio::spawn_blocking +/// +/// DNS resolution is required to validate that provided URIs point to the loopback interface +#[cfg(feature = "rt-tokio")] +fn tokio_dns() -> Option { + use aws_smithy_client::erase::boxclone::BoxFuture; + use std::io::ErrorKind; + use std::net::ToSocketAddrs; + use std::task::{Context, Poll}; + + #[derive(Clone)] + struct TokioDns; + impl Service for TokioDns { + type Response = Vec; + type Error = io::Error; + type Future = BoxFuture; + + fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn call(&mut self, req: String) -> Self::Future { + Box::pin(async move { + let result = tokio::task::spawn_blocking(move || (req, 0).to_socket_addrs()).await; + match result { + Err(join_failure) => Err(io::Error::new(ErrorKind::Other, join_failure)), + Ok(Ok(dns_result)) => { + Ok(dns_result.into_iter().map(|addr| addr.ip()).collect()) + } + Ok(Err(dns_failure)) => Err(dns_failure), + } + }) + } + } + Some(BoxCloneService::new(TokioDns)) +} + +#[cfg(test)] +mod test { + use aws_smithy_client::erase::boxclone::BoxCloneService; + use aws_smithy_client::never::NeverService; + use futures_util::FutureExt; + use http::Uri; + use serde::Deserialize; + use tracing_test::traced_test; + + use crate::ecs::{ + tokio_dns, validate_full_uri, Builder, EcsCredentialsProvider, InvalidFullUriError, + Provider, + }; + use crate::provider_config::ProviderConfig; + use crate::test_case::GenericTestResult; + + use aws_types::credentials::ProvideCredentials; + use aws_types::os_shim_internal::Env; + use aws_types::Credentials; + + use aws_smithy_async::rt::sleep::TokioSleep; + use aws_smithy_client::erase::DynConnector; + use aws_smithy_client::test_connection::TestConnection; + use aws_smithy_http::body::SdkBody; + use http::header::AUTHORIZATION; + use std::collections::HashMap; + use std::error::Error; + use std::future::Ready; + use std::io; + use std::net::IpAddr; + use std::task::{Context, Poll}; + use std::time::{Duration, UNIX_EPOCH}; + use tower::Service; + + fn provider(env: Env, connector: DynConnector) -> EcsCredentialsProvider { + let provider_config = ProviderConfig::empty() + .with_env(env) + .with_http_connector(connector) + .with_sleep(TokioSleep::new()); + Builder::default().configure(&provider_config).build() + } + + #[derive(Deserialize)] + struct EcsUriTest { + env: HashMap, + result: GenericTestResult, + } + + impl EcsUriTest { + async fn check(&self) { + let env = Env::from(self.env.clone()); + let uri = Provider::uri(env, Some(BoxCloneService::new(TestDns::default()))) + .await + .map(|uri| uri.to_string()); + self.result.assert_matches(uri); + } + } + + #[tokio::test] + async fn run_config_tests() -> Result<(), Box> { + let test_cases = std::fs::read_to_string("test-data/ecs-tests.json")?; + #[derive(Deserialize)] + struct TestCases { + tests: Vec, + } + + let test_cases: TestCases = serde_json::from_str(&test_cases)?; + let test_cases = test_cases.tests; + for test in test_cases { + test.check().await + } + Ok(()) + } + + #[test] + fn validate_uri_https() { + // over HTTPs, any URI is fine + let never = NeverService::new(); + let mut dns = Some(BoxCloneService::new(never)); + assert_eq!( + validate_full_uri("https://amazon.com", None) + .now_or_never() + .unwrap() + .expect("valid"), + Uri::from_static("https://amazon.com") + ); + // over HTTP, it will try to lookup + assert!( + validate_full_uri("http://amazon.com", dns.as_mut()) + .now_or_never() + .is_none(), + "DNS lookup should occur, but it will never return" + ); + + let no_dns_error = validate_full_uri("http://amazon.com", None) + .now_or_never() + .unwrap() + .expect_err("DNS service is required"); + assert!( + matches!(no_dns_error, InvalidFullUriError::NoDnsService), + "expected no dns service, got: {}", + no_dns_error + ); + } + + #[test] + fn valid_uri_loopback() { + assert_eq!( + validate_full_uri("http://127.0.0.1:8080/get-credentials", None) + .now_or_never() + .unwrap() + .expect("valid uri"), + Uri::from_static("http://127.0.0.1:8080/get-credentials") + ); + + let err = validate_full_uri("http://192.168.10.120/creds", None) + .now_or_never() + .unwrap() + .expect_err("not a loopback"); + assert!(matches!(err, InvalidFullUriError::NotLoopback)); + } + + #[test] + fn all_addrs_local() { + let svc = TestDns::with_fallback(vec![ + "127.0.0.1".parse().unwrap(), + "127.0.0.2".parse().unwrap(), + ]); + let mut svc = Some(BoxCloneService::new(svc)); + let resp = validate_full_uri("http://localhost:8888", svc.as_mut()) + .now_or_never() + .unwrap(); + assert!(resp.is_ok(), "Should be valid: {:?}", resp); + } + + #[test] + fn all_addrs_not_local() { + let svc = TestDns::with_fallback(vec![ + "127.0.0.1".parse().unwrap(), + "192.168.0.1".parse().unwrap(), + ]); + let mut svc = Some(BoxCloneService::new(svc)); + let resp = validate_full_uri("http://localhost:8888", svc.as_mut()) + .now_or_never() + .unwrap(); + assert!( + matches!(resp, Err(InvalidFullUriError::NotLoopback)), + "Should be invalid: {:?}", + resp + ); + } + + fn creds_request(uri: &str, auth: Option<&str>) -> http::Request { + let mut builder = http::Request::builder(); + if let Some(auth) = auth { + builder = builder.header(AUTHORIZATION, auth); + } + builder.uri(uri).body(SdkBody::empty()).unwrap() + } + + fn ok_creds_response() -> http::Response { + http::Response::builder() + .status(200) + .body(SdkBody::from( + r#" { + "AccessKeyId" : "AKID", + "SecretAccessKey" : "SECRET", + "Token" : "TOKEN....=", + "Expiration" : "2009-02-13T23:31:30Z" + }"#, + )) + .unwrap() + } + + #[track_caller] + fn assert_correct(creds: Credentials) { + assert_eq!(creds.access_key_id(), "AKID"); + assert_eq!(creds.secret_access_key(), "SECRET"); + assert_eq!(creds.session_token().unwrap(), "TOKEN....="); + assert_eq!( + creds.expiry().unwrap(), + UNIX_EPOCH + Duration::from_secs(1234567890) + ); + } + + #[tokio::test] + async fn load_valid_creds_auth() { + let env = Env::from_slice(&[ + ("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", "/credentials"), + ("AWS_CONTAINER_AUTHORIZATION_TOKEN", "Basic password"), + ]); + let connector = TestConnection::new(vec![( + creds_request("http://169.254.170.2/credentials", Some("Basic password")), + ok_creds_response(), + )]); + let provider = provider(env, DynConnector::new(connector.clone())); + let creds = provider + .provide_credentials() + .await + .expect("valid credentials"); + assert_correct(creds); + connector.assert_requests_match(&[]); + } + + #[tokio::test] + async fn retry_5xx() { + let env = Env::from_slice(&[("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", "/credentials")]); + let connector = TestConnection::new(vec![ + ( + creds_request("http://169.254.170.2/credentials", None), + http::Response::builder() + .status(500) + .body(SdkBody::empty()) + .unwrap(), + ), + ( + creds_request("http://169.254.170.2/credentials", None), + ok_creds_response(), + ), + ]); + tokio::time::pause(); + let provider = provider(env, DynConnector::new(connector.clone())); + let creds = provider + .provide_credentials() + .await + .expect("valid credentials"); + assert_correct(creds); + } + + #[tokio::test] + async fn load_valid_creds_no_auth() { + let env = Env::from_slice(&[("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", "/credentials")]); + let connector = TestConnection::new(vec![( + creds_request("http://169.254.170.2/credentials", None), + ok_creds_response(), + )]); + let provider = provider(env, DynConnector::new(connector.clone())); + let creds = provider + .provide_credentials() + .await + .expect("valid credentials"); + assert_correct(creds); + connector.assert_requests_match(&[]); + } + + // ignored by default because it relies on actual DNS resolution + #[allow(unused_attributes)] + #[tokio::test] + #[traced_test] + #[ignore] + async fn real_dns_lookup() { + let mut dns = Some(tokio_dns().expect("feature must be enabled")); + let err = validate_full_uri("http://www.amazon.com/creds", dns.as_mut()) + .await + .expect_err("not a loopback"); + assert!(matches!(err, InvalidFullUriError::NotLoopback), "{:?}", err); + assert!(logs_contain( + "Address does not resolve to the loopback interface" + )); + validate_full_uri("http://localhost:8888/creds", dns.as_mut()) + .await + .expect("localhost is the loopback interface"); + } + + /// TestService which always returns the same IP addresses + #[derive(Clone)] + struct TestDns { + addrs: HashMap>, + fallback: Vec, + } + + /// Default that returns a loopback for `localhost` and a non-loopback for all other hostnames + impl Default for TestDns { + fn default() -> Self { + let mut addrs = HashMap::new(); + addrs.insert( + "localhost".into(), + vec!["127.0.0.1".parse().unwrap(), "127.0.0.2".parse().unwrap()], + ); + TestDns { + addrs, + // non-loopback address + fallback: vec!["72.21.210.29".parse().unwrap()], + } + } + } + + impl TestDns { + fn with_fallback(fallback: Vec) -> Self { + TestDns { + addrs: Default::default(), + fallback, + } + } + } + + impl Service for TestDns { + type Response = Vec; + type Error = io::Error; + type Future = Ready>; + + fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn call(&mut self, _req: String) -> Self::Future { + std::future::ready(Ok(self.addrs.get(&_req).unwrap_or(&self.fallback).clone())) + } + } +} diff --git a/patch/aws-config/src/environment/app_name.rs b/patch/aws-config/src/environment/app_name.rs new file mode 100644 index 0000000000000..52033723db4bd --- /dev/null +++ b/patch/aws-config/src/environment/app_name.rs @@ -0,0 +1,70 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_types::app_name::AppName; +use aws_types::os_shim_internal::Env; + +/// Load an app name from the `AWS_SDK_UA_APP_ID` environment variable. +#[derive(Debug, Default)] +pub struct EnvironmentVariableAppNameProvider { + env: Env, +} + +impl EnvironmentVariableAppNameProvider { + /// Create a new `EnvironmentVariableAppNameProvider` + pub fn new() -> Self { + Self { env: Env::real() } + } + + #[doc(hidden)] + /// Create an region provider from a given `Env` + /// + /// This method is used for tests that need to override environment variables. + pub fn new_with_env(env: Env) -> Self { + Self { env } + } + + /// Attempts to create an `AppName` from the `AWS_SDK_UA_APP_ID` environment variable. + pub fn app_name(&self) -> Option { + if let Ok(name) = self.env.get("AWS_SDK_UA_APP_ID") { + match AppName::new(name) { + Ok(name) => Some(name), + Err(err) => { + tracing::warn!(err = %err, "`AWS_SDK_UA_APP_ID` environment variable value was invalid"); + None + } + } + } else { + None + } + } +} + +#[cfg(test)] +mod tests { + use crate::environment::EnvironmentVariableAppNameProvider; + use aws_types::app_name::AppName; + use aws_types::os_shim_internal::Env; + use std::collections::HashMap; + + #[test] + fn env_var_not_set() { + let provider = EnvironmentVariableAppNameProvider::new_with_env(Env::from(HashMap::new())); + assert_eq!(None, provider.app_name()); + } + + #[test] + fn env_var_set() { + let provider = EnvironmentVariableAppNameProvider::new_with_env(Env::from( + vec![("AWS_SDK_UA_APP_ID".to_string(), "something".to_string())] + .into_iter() + .collect::>(), + )); + assert_eq!( + Some(AppName::new("something").unwrap()), + provider.app_name() + ); + } +} diff --git a/patch/aws-config/src/environment/credentials.rs b/patch/aws-config/src/environment/credentials.rs new file mode 100644 index 0000000000000..aff4c05ee4834 --- /dev/null +++ b/patch/aws-config/src/environment/credentials.rs @@ -0,0 +1,193 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::env::VarError; + +use aws_types::credentials::future; +use aws_types::credentials::{CredentialsError, ProvideCredentials}; +use aws_types::os_shim_internal::Env; +use aws_types::{credentials, Credentials}; + +/// Load Credentials from Environment Variables +/// +/// `EnvironmentVariableCredentialsProvider` uses the following variables: +/// - `AWS_ACCESS_KEY_ID` +/// - `AWS_SECRET_ACCESS_KEY` with fallback to `SECRET_ACCESS_KEY` +/// - `AWS_SESSION_TOKEN` +#[derive(Debug, Clone)] +pub struct EnvironmentVariableCredentialsProvider { + env: Env, +} + +impl EnvironmentVariableCredentialsProvider { + fn credentials(&self) -> credentials::Result { + let access_key = self.env.get("AWS_ACCESS_KEY_ID").map_err(to_cred_error)?; + let secret_key = self + .env + .get("AWS_SECRET_ACCESS_KEY") + .or_else(|_| self.env.get("SECRET_ACCESS_KEY")) + .map_err(to_cred_error)?; + let session_token = self + .env + .get("AWS_SESSION_TOKEN") + .ok() + .map(|token| match token.trim() { + s if s.is_empty() => None, + s => Some(s.to_string()), + }) + .flatten(); + Ok(Credentials::new( + access_key, + secret_key, + session_token, + None, + ENV_PROVIDER, + )) + } +} + +impl EnvironmentVariableCredentialsProvider { + /// Create a `EnvironmentVariableCredentialsProvider` + pub fn new() -> Self { + Self::new_with_env(Env::real()) + } + + #[doc(hidden)] + /// Create a new `EnvironmentVariableCredentialsProvider` with `Env` overridden + /// + /// This function is intended for tests that mock out the process environment. + pub fn new_with_env(env: Env) -> Self { + Self { env } + } +} + +impl Default for EnvironmentVariableCredentialsProvider { + fn default() -> Self { + Self::new() + } +} + +const ENV_PROVIDER: &str = "EnvironmentVariable"; + +impl ProvideCredentials for EnvironmentVariableCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a> + where + Self: 'a, + { + future::ProvideCredentials::ready(self.credentials()) + } +} + +fn to_cred_error(err: VarError) -> CredentialsError { + match err { + VarError::NotPresent => CredentialsError::not_loaded("environment variable not set"), + e @ VarError::NotUnicode(_) => CredentialsError::unhandled(e), + } +} + +#[cfg(test)] +mod test { + use aws_types::credentials::{CredentialsError, ProvideCredentials}; + use aws_types::os_shim_internal::Env; + use futures_util::FutureExt; + + use super::EnvironmentVariableCredentialsProvider; + + fn make_provider(vars: &[(&str, &str)]) -> EnvironmentVariableCredentialsProvider { + EnvironmentVariableCredentialsProvider { + env: Env::from_slice(vars), + } + } + + #[test] + fn valid_no_token() { + let provider = make_provider(&[ + ("AWS_ACCESS_KEY_ID", "access"), + ("AWS_SECRET_ACCESS_KEY", "secret"), + ]); + let creds = provider + .provide_credentials() + .now_or_never() + .unwrap() + .expect("valid credentials"); + assert_eq!(creds.session_token(), None); + assert_eq!(creds.access_key_id(), "access"); + assert_eq!(creds.secret_access_key(), "secret"); + } + + #[test] + fn valid_with_token() { + let provider = make_provider(&[ + ("AWS_ACCESS_KEY_ID", "access"), + ("AWS_SECRET_ACCESS_KEY", "secret"), + ("AWS_SESSION_TOKEN", "token"), + ]); + + let creds = provider + .provide_credentials() + .now_or_never() + .unwrap() + .expect("valid credentials"); + assert_eq!(creds.session_token().unwrap(), "token"); + assert_eq!(creds.access_key_id(), "access"); + assert_eq!(creds.secret_access_key(), "secret"); + } + + #[test] + fn empty_token_env_var() { + for token_value in &["", " "] { + let provider = make_provider(&[ + ("AWS_ACCESS_KEY_ID", "access"), + ("AWS_SECRET_ACCESS_KEY", "secret"), + ("AWS_SESSION_TOKEN", token_value), + ]); + + let creds = provider + .provide_credentials() + .now_or_never() + .unwrap() + .expect("valid credentials"); + assert_eq!(creds.access_key_id(), "access"); + assert_eq!(creds.secret_access_key(), "secret"); + assert_eq!(creds.session_token(), None); + } + } + + #[test] + fn secret_key_fallback() { + let provider = make_provider(&[ + ("AWS_ACCESS_KEY_ID", "access"), + ("SECRET_ACCESS_KEY", "secret"), + ("AWS_SESSION_TOKEN", "token"), + ]); + + let creds = provider + .provide_credentials() + .now_or_never() + .unwrap() + .expect("valid credentials"); + assert_eq!(creds.session_token().unwrap(), "token"); + assert_eq!(creds.access_key_id(), "access"); + assert_eq!(creds.secret_access_key(), "secret"); + } + + #[test] + fn missing() { + let provider = make_provider(&[]); + let err = provider + .provide_credentials() + .now_or_never() + .unwrap() + .expect_err("no credentials defined"); + assert!(matches!(err, CredentialsError::CredentialsNotLoaded { .. })); + } + + #[test] + fn real_environment() { + let provider = EnvironmentVariableCredentialsProvider::new(); + // we don't know what's in the env, just make sure it doesn't crash. + let _ = provider.provide_credentials(); + } +} diff --git a/patch/aws-config/src/environment/mod.rs b/patch/aws-config/src/environment/mod.rs new file mode 100644 index 0000000000000..520a7b7191581 --- /dev/null +++ b/patch/aws-config/src/environment/mod.rs @@ -0,0 +1,24 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +/// Load app name from the environment +pub mod app_name; +pub use app_name::EnvironmentVariableAppNameProvider; + +/// Load credentials from the environment +pub mod credentials; +pub use credentials::EnvironmentVariableCredentialsProvider; + +/// Load regions from the environment +pub mod region; +pub use region::EnvironmentVariableRegionProvider; + +/// Load retry behavior configuration from the environment +pub mod retry_config; +pub use retry_config::EnvironmentVariableRetryConfigProvider; + +/// Load timeout configuration from the environment +pub mod timeout_config; +pub use timeout_config::EnvironmentVariableTimeoutConfigProvider; diff --git a/patch/aws-config/src/environment/region.rs b/patch/aws-config/src/environment/region.rs new file mode 100644 index 0000000000000..30079249c1f5c --- /dev/null +++ b/patch/aws-config/src/environment/region.rs @@ -0,0 +1,90 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use crate::meta::region::{future, ProvideRegion}; +use aws_types::os_shim_internal::Env; +use aws_types::region::Region; + +/// Load a region from environment variables +/// +/// This provider will first check the value of `AWS_REGION`, falling back to `AWS_DEFAULT_REGION` +/// when `AWS_REGION` is unset. +#[derive(Debug, Default)] +pub struct EnvironmentVariableRegionProvider { + env: Env, +} + +impl EnvironmentVariableRegionProvider { + /// Create a new `EnvironmentVariableRegionProvider` + pub fn new() -> Self { + EnvironmentVariableRegionProvider { env: Env::real() } + } + + #[doc(hidden)] + /// Create an region provider from a given `Env` + /// + /// This method is used for tests that need to override environment variables. + pub fn new_with_env(env: Env) -> Self { + EnvironmentVariableRegionProvider { env } + } +} + +impl ProvideRegion for EnvironmentVariableRegionProvider { + fn region(&self) -> future::ProvideRegion { + let region = self + .env + .get("AWS_REGION") + .or_else(|_| self.env.get("AWS_DEFAULT_REGION")) + .map(Region::new) + .ok(); + future::ProvideRegion::ready(region) + } +} +#[cfg(test)] +mod test { + use crate::environment::region::EnvironmentVariableRegionProvider; + use crate::meta::region::ProvideRegion; + use aws_types::os_shim_internal::Env; + use aws_types::region::Region; + use futures_util::FutureExt; + + fn test_provider(vars: &[(&str, &str)]) -> EnvironmentVariableRegionProvider { + EnvironmentVariableRegionProvider::new_with_env(Env::from_slice(vars)) + } + + #[test] + fn no_region() { + assert_eq!( + test_provider(&[]) + .region() + .now_or_never() + .expect("no polling"), + None + ); + } + + #[test] + fn prioritize_aws_region() { + let provider = test_provider(&[ + ("AWS_REGION", "us-east-1"), + ("AWS_DEFAULT_REGION", "us-east-2"), + ]); + assert_eq!( + provider.region().now_or_never().expect("no polling"), + Some(Region::new("us-east-1")) + ); + } + + #[test] + fn fallback_to_default_region() { + assert_eq!( + test_provider(&[("AWS_DEFAULT_REGION", "us-east-2")]) + .region() + .now_or_never() + .expect("no polling"), + Some(Region::new("us-east-2")) + ); + } +} diff --git a/patch/aws-config/src/environment/retry_config.rs b/patch/aws-config/src/environment/retry_config.rs new file mode 100644 index 0000000000000..bb459af5d3fbc --- /dev/null +++ b/patch/aws-config/src/environment/retry_config.rs @@ -0,0 +1,156 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::str::FromStr; + +use aws_smithy_types::retry::{RetryConfigBuilder, RetryConfigErr, RetryMode}; +use aws_types::os_shim_internal::Env; + +const ENV_VAR_MAX_ATTEMPTS: &str = "AWS_MAX_ATTEMPTS"; +const ENV_VAR_RETRY_MODE: &str = "AWS_RETRY_MODE"; + +/// Load a retry_config from environment variables +/// +/// This provider will check the values of `AWS_RETRY_MODE` and `AWS_MAX_ATTEMPTS` +/// in order to build a retry config. +#[derive(Debug, Default)] +pub struct EnvironmentVariableRetryConfigProvider { + env: Env, +} + +impl EnvironmentVariableRetryConfigProvider { + /// Create a new [`EnvironmentVariableRetryConfigProvider`] + pub fn new() -> Self { + EnvironmentVariableRetryConfigProvider { env: Env::real() } + } + + #[doc(hidden)] + /// Create an retry_config provider from a given `Env` + /// + /// This method is used for tests that need to override environment variables. + pub fn new_with_env(env: Env) -> Self { + EnvironmentVariableRetryConfigProvider { env } + } + + /// Attempt to create a new `RetryConfig` from environment variables + pub fn retry_config_builder(&self) -> Result { + let max_attempts = match self.env.get(ENV_VAR_MAX_ATTEMPTS).ok() { + Some(max_attempts) => match max_attempts.parse::() { + Ok(max_attempts) if max_attempts == 0 => { + return Err(RetryConfigErr::MaxAttemptsMustNotBeZero { + set_by: "environment variable".into(), + }); + } + Ok(max_attempts) => Some(max_attempts), + Err(source) => { + return Err(RetryConfigErr::FailedToParseMaxAttempts { + set_by: "environment variable".into(), + source, + }); + } + }, + None => None, + }; + + let retry_mode = match self.env.get(ENV_VAR_RETRY_MODE) { + Ok(retry_mode) => match RetryMode::from_str(&retry_mode) { + Ok(retry_mode) => Some(retry_mode), + Err(retry_mode_err) => { + return Err(RetryConfigErr::InvalidRetryMode { + set_by: "environment variable".into(), + source: retry_mode_err, + }); + } + }, + Err(_) => None, + }; + + let mut retry_config_builder = RetryConfigBuilder::new(); + retry_config_builder + .set_max_attempts(max_attempts) + .set_mode(retry_mode); + + Ok(retry_config_builder) + } +} + +#[cfg(test)] +mod test { + use aws_smithy_types::retry::{RetryConfig, RetryConfigErr, RetryMode}; + use aws_types::os_shim_internal::Env; + + use super::{EnvironmentVariableRetryConfigProvider, ENV_VAR_MAX_ATTEMPTS, ENV_VAR_RETRY_MODE}; + + fn test_provider(vars: &[(&str, &str)]) -> EnvironmentVariableRetryConfigProvider { + EnvironmentVariableRetryConfigProvider::new_with_env(Env::from_slice(vars)) + } + + #[test] + fn defaults() { + let built = test_provider(&[]).retry_config_builder().unwrap().build(); + + assert_eq!(built.mode(), RetryMode::Standard); + assert_eq!(built.max_attempts(), 3); + } + + #[test] + fn max_attempts_is_read_correctly() { + assert_eq!( + test_provider(&[(ENV_VAR_MAX_ATTEMPTS, "88")]) + .retry_config_builder() + .unwrap() + .build(), + RetryConfig::new().with_max_attempts(88) + ); + } + + #[test] + fn max_attempts_errors_when_it_cant_be_parsed_as_an_integer() { + assert!(matches!( + test_provider(&[(ENV_VAR_MAX_ATTEMPTS, "not an integer")]) + .retry_config_builder() + .unwrap_err(), + RetryConfigErr::FailedToParseMaxAttempts { .. } + )); + } + + #[test] + fn retry_mode_is_read_correctly() { + assert_eq!( + test_provider(&[(ENV_VAR_RETRY_MODE, "standard")]) + .retry_config_builder() + .unwrap() + .build(), + RetryConfig::new().with_retry_mode(RetryMode::Standard) + ); + } + + #[test] + fn both_fields_can_be_set_at_once() { + assert_eq!( + test_provider(&[ + (ENV_VAR_RETRY_MODE, "standard"), + (ENV_VAR_MAX_ATTEMPTS, "13") + ]) + .retry_config_builder() + .unwrap() + .build(), + RetryConfig::new() + .with_max_attempts(13) + .with_retry_mode(RetryMode::Standard) + ); + } + + #[test] + fn disallow_zero_max_attempts() { + let err = test_provider(&[(ENV_VAR_MAX_ATTEMPTS, "0")]) + .retry_config_builder() + .unwrap_err(); + assert!(matches!( + err, + RetryConfigErr::MaxAttemptsMustNotBeZero { .. } + )); + } +} diff --git a/patch/aws-config/src/environment/timeout_config.rs b/patch/aws-config/src/environment/timeout_config.rs new file mode 100644 index 0000000000000..53128bf9f1d10 --- /dev/null +++ b/patch/aws-config/src/environment/timeout_config.rs @@ -0,0 +1,141 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load timeout configuration properties from environment variables + +use crate::parsing::parse_str_as_timeout; + +use aws_smithy_types::timeout; +use aws_smithy_types::tristate::TriState; +use aws_types::os_shim_internal::Env; + +use std::time::Duration; + +// Currently unsupported timeouts +const ENV_VAR_CONNECT_TIMEOUT: &str = "AWS_CONNECT_TIMEOUT"; +const ENV_VAR_TLS_NEGOTIATION_TIMEOUT: &str = "AWS_TLS_NEGOTIATION_TIMEOUT"; +const ENV_VAR_READ_TIMEOUT: &str = "AWS_READ_TIMEOUT"; + +// Supported timeouts +const ENV_VAR_API_CALL_ATTEMPT_TIMEOUT: &str = "AWS_API_CALL_ATTEMPT_TIMEOUT"; +const ENV_VAR_API_CALL_TIMEOUT: &str = "AWS_API_CALL_TIMEOUT"; + +/// Load a timeout_config from environment variables +/// +/// This provider will check the values of the following variables in order to build a +/// [`timeout::Config`](aws_smithy_types::timeout::Config) +/// +/// - `AWS_API_CALL_ATTEMPT_TIMEOUT` +/// - `AWS_API_CALL_TIMEOUT` +/// +/// Timeout values represent the number of seconds before timing out and must be non-negative floats +/// or integers. NaN and infinity are also invalid. +#[derive(Debug, Default)] +pub struct EnvironmentVariableTimeoutConfigProvider { + env: Env, +} + +impl EnvironmentVariableTimeoutConfigProvider { + /// Create a new [`EnvironmentVariableTimeoutConfigProvider`] + pub fn new() -> Self { + EnvironmentVariableTimeoutConfigProvider { env: Env::real() } + } + + #[doc(hidden)] + /// Create a timeout config provider from a given [`Env`] + /// + /// This method is used for tests that need to override environment variables. + pub fn new_with_env(env: Env) -> Self { + EnvironmentVariableTimeoutConfigProvider { env } + } + + /// Attempt to create a new [`timeout::Config`](aws_smithy_types::timeout::Config) from environment variables + pub fn timeout_config(&self) -> Result { + // Warn users that set unsupported timeouts in their profile + for timeout in [ + ENV_VAR_CONNECT_TIMEOUT, + ENV_VAR_TLS_NEGOTIATION_TIMEOUT, + ENV_VAR_READ_TIMEOUT, + ] { + warn_if_unsupported_timeout_is_set(&self.env, timeout); + } + + let api_call_attempt_timeout = + construct_timeout_from_env_var(&self.env, ENV_VAR_API_CALL_ATTEMPT_TIMEOUT)?; + let api_call_timeout = construct_timeout_from_env_var(&self.env, ENV_VAR_API_CALL_TIMEOUT)?; + + let api_timeouts = timeout::Api::new() + .with_call_timeout(api_call_timeout) + .with_call_attempt_timeout(api_call_attempt_timeout); + + // Only API-related timeouts are currently supported + Ok(timeout::Config::new().with_api_timeouts(api_timeouts)) + } +} + +fn construct_timeout_from_env_var( + env: &Env, + var: &'static str, +) -> Result, timeout::ConfigError> { + match env.get(var).ok() { + Some(timeout) => parse_str_as_timeout(&timeout, var.into(), "environment variable".into()) + .map(TriState::Set), + None => Ok(TriState::Unset), + } +} + +fn warn_if_unsupported_timeout_is_set(env: &Env, var: &'static str) { + if env.get(var).is_ok() { + tracing::warn!( + "Environment variable for '{}' timeout was set but that feature is currently unimplemented so the setting will be ignored. \ + To help us prioritize support for this feature, please upvote aws-sdk-rust#151 (https://github.com/awslabs/aws-sdk-rust/issues/151)", + var + ) + } +} + +#[cfg(test)] +mod test { + use super::{ + EnvironmentVariableTimeoutConfigProvider, ENV_VAR_API_CALL_ATTEMPT_TIMEOUT, + ENV_VAR_API_CALL_TIMEOUT, + }; + use aws_smithy_types::timeout; + use aws_smithy_types::tristate::TriState; + use aws_types::os_shim_internal::Env; + use std::time::Duration; + + fn test_provider(vars: &[(&str, &str)]) -> EnvironmentVariableTimeoutConfigProvider { + EnvironmentVariableTimeoutConfigProvider::new_with_env(Env::from_slice(vars)) + } + + #[test] + fn no_defaults() { + let built = test_provider(&[]).timeout_config().unwrap(); + + assert_eq!(built.api.call_timeout(), TriState::Unset); + assert_eq!(built.api.call_attempt_timeout(), TriState::Unset); + } + + #[test] + fn all_fields_can_be_set_at_once() { + let expected_api_timeouts = timeout::Api::new() + .with_call_attempt_timeout(TriState::Set(Duration::from_secs_f32(4.0))) + // Some floats can't be represented as f32 so this duration will end up equalling the + // duration from the env. + .with_call_timeout(TriState::Set(Duration::from_secs_f32(900012350.0))); + let expected_timeouts = timeout::Config::new().with_api_timeouts(expected_api_timeouts); + + assert_eq!( + test_provider(&[ + (ENV_VAR_API_CALL_ATTEMPT_TIMEOUT, "04.000"), + (ENV_VAR_API_CALL_TIMEOUT, "900012345.0") + ]) + .timeout_config() + .unwrap(), + expected_timeouts + ); + } +} diff --git a/patch/aws-config/src/fs_util.rs b/patch/aws-config/src/fs_util.rs new file mode 100644 index 0000000000000..22b6cebad72df --- /dev/null +++ b/patch/aws-config/src/fs_util.rs @@ -0,0 +1,62 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_types::os_shim_internal; + +#[derive(Debug, Copy, Clone, Eq, PartialEq)] +pub(crate) enum Os { + Windows, + NotWindows, +} + +impl Os { + pub fn real() -> Self { + match std::env::consts::OS { + "windows" => Os::Windows, + _ => Os::NotWindows, + } + } +} + +/// Resolve a home directory given a set of environment variables +pub(crate) fn home_dir(env_var: &os_shim_internal::Env, os: Os) -> Option { + if let Ok(home) = env_var.get("HOME") { + tracing::debug!(src = "HOME", "loaded home directory"); + return Some(home); + } + + if os == Os::Windows { + if let Ok(home) = env_var.get("USERPROFILE") { + tracing::debug!(src = "USERPROFILE", "loaded home directory"); + return Some(home); + } + + let home_drive = env_var.get("HOMEDRIVE"); + let home_path = env_var.get("HOMEPATH"); + tracing::debug!(src = "HOMEDRIVE/HOMEPATH", "loaded home directory"); + if let (Ok(mut drive), Ok(path)) = (home_drive, home_path) { + drive.push_str(&path); + return Some(drive); + } + } + None +} + +#[cfg(test)] +mod test { + use super::*; + use aws_types::os_shim_internal::Env; + + #[test] + fn homedir_profile_only_windows() { + // windows specific variables should only be considered when the platform is windows + let env = Env::from_slice(&[("USERPROFILE", "C:\\Users\\name")]); + assert_eq!( + home_dir(&env, Os::Windows), + Some("C:\\Users\\name".to_string()) + ); + assert_eq!(home_dir(&env, Os::NotWindows), None); + } +} diff --git a/patch/aws-config/src/http_credential_provider.rs b/patch/aws-config/src/http_credential_provider.rs new file mode 100644 index 0000000000000..2616600a687e3 --- /dev/null +++ b/patch/aws-config/src/http_credential_provider.rs @@ -0,0 +1,301 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Generalized HTTP credential provider. Currently, this cannot be used directly and can only +//! be used via the ECS credential provider. +//! +//! Future work will stabilize this interface and enable it to be used directly. + +use aws_smithy_client::erase::DynConnector; +use aws_smithy_client::http_connector::HttpSettings; +use aws_smithy_http::body::SdkBody; +use aws_smithy_http::operation::{Operation, Request}; +use aws_smithy_http::response::ParseStrictResponse; +use aws_smithy_http::result::{SdkError, SdkSuccess}; +use aws_smithy_http::retry::ClassifyResponse; +use aws_smithy_types::retry::{ErrorKind, RetryKind}; +use aws_smithy_types::timeout; +use aws_smithy_types::tristate::TriState; +use aws_types::credentials::CredentialsError; +use aws_types::{credentials, Credentials}; + +use crate::connector::expect_connector; +use crate::json_credentials::{parse_json_credentials, JsonCredentials}; +use crate::provider_config::ProviderConfig; + +use bytes::Bytes; +use http::header::{ACCEPT, AUTHORIZATION}; +use http::{HeaderValue, Response, Uri}; +use std::time::Duration; +use tower::layer::util::Identity; + +const DEFAULT_READ_TIMEOUT: Duration = Duration::from_secs(5); +const DEFAULT_CONNECT_TIMEOUT: Duration = Duration::from_secs(2); + +#[derive(Debug)] +pub(crate) struct HttpCredentialProvider { + uri: Uri, + client: aws_smithy_client::Client, + provider_name: &'static str, +} + +impl HttpCredentialProvider { + pub fn builder() -> Builder { + Builder::default() + } + + pub async fn credentials(&self, auth: Option) -> credentials::Result { + let credentials = self.client.call(self.operation(auth)).await; + match credentials { + Ok(creds) => Ok(creds), + Err(SdkError::ServiceError { err, .. }) => Err(err), + Err(other) => Err(CredentialsError::unhandled(other)), + } + } + + fn operation( + &self, + auth: Option, + ) -> Operation { + let mut http_req = http::Request::builder() + .uri(&self.uri) + .header(ACCEPT, "application/json"); + + if let Some(auth) = auth { + http_req = http_req.header(AUTHORIZATION, auth); + } + let http_req = http_req.body(SdkBody::empty()).expect("valid request"); + Operation::new( + Request::new(http_req), + CredentialsResponseParser { + provider_name: self.provider_name, + }, + ) + .with_retry_policy(HttpCredentialRetryPolicy) + } +} + +#[derive(Default)] +pub(crate) struct Builder { + provider_config: Option, + http_timeout_config: timeout::Http, +} + +impl Builder { + pub(crate) fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.provider_config = Some(provider_config.clone()); + self + } + + // read_timeout and connect_timeout accept options to enable easy pass through from + // other builders + pub(crate) fn read_timeout(mut self, read_timeout: Option) -> Self { + self.http_timeout_config = self + .http_timeout_config + .with_read_timeout(read_timeout.into()); + self + } + + pub(crate) fn connect_timeout(mut self, connect_timeout: Option) -> Self { + self.http_timeout_config = self + .http_timeout_config + .with_connect_timeout(connect_timeout.into()); + self + } + + pub(crate) fn build(self, provider_name: &'static str, uri: Uri) -> HttpCredentialProvider { + let provider_config = self.provider_config.unwrap_or_default(); + let default_timeout_config = timeout::Http::new() + .with_connect_timeout(TriState::Set(DEFAULT_CONNECT_TIMEOUT)) + .with_read_timeout(TriState::Set(DEFAULT_READ_TIMEOUT)); + let http_timeout_config = self + .http_timeout_config + .take_unset_from(default_timeout_config); + let http_settings = HttpSettings::default().with_http_timeout_config(http_timeout_config); + let connector = expect_connector(provider_config.connector(&http_settings)); + let client = aws_smithy_client::Builder::new() + .connector(connector) + .sleep_impl(provider_config.sleep()) + .build(); + HttpCredentialProvider { + uri, + client, + provider_name, + } + } +} + +#[derive(Clone, Debug)] +struct CredentialsResponseParser { + provider_name: &'static str, +} +impl ParseStrictResponse for CredentialsResponseParser { + type Output = credentials::Result; + + fn parse(&self, response: &Response) -> Self::Output { + if !response.status().is_success() { + return Err(CredentialsError::provider_error(format!( + "Non-success status from HTTP credential provider: {:?}", + response.status() + ))); + } + let str_resp = + std::str::from_utf8(response.body().as_ref()).map_err(CredentialsError::unhandled)?; + let json_creds = parse_json_credentials(str_resp).map_err(CredentialsError::unhandled)?; + match json_creds { + JsonCredentials::RefreshableCredentials { + access_key_id, + secret_access_key, + session_token, + expiration, + } => Ok(Credentials::new( + access_key_id, + secret_access_key, + Some(session_token.to_string()), + Some(expiration), + self.provider_name, + )), + JsonCredentials::Error { code, message } => Err(CredentialsError::provider_error( + format!("failed to load credentials [{}]: {}", code, message), + )), + } + } +} + +#[derive(Clone, Debug)] +struct HttpCredentialRetryPolicy; + +impl ClassifyResponse, SdkError> + for HttpCredentialRetryPolicy +{ + fn classify( + &self, + response: Result<&SdkSuccess, &SdkError>, + ) -> RetryKind { + /* The following errors are retryable: + * - Socket errors + * - Networking timeouts + * - 5xx errors + * - Non-parseable 200 responses. + * */ + match response { + Ok(_) => RetryKind::Unnecessary, + // socket errors, networking timeouts + Err(SdkError::DispatchFailure(client_err)) + if client_err.is_timeout() || client_err.is_io() => + { + RetryKind::Error(ErrorKind::TransientError) + } + // non-parseable 200s + Err(SdkError::ServiceError { + err: CredentialsError::Unhandled { .. }, + raw, + }) if raw.http().status().is_success() => RetryKind::Error(ErrorKind::ServerError), + // 5xx errors + Err(SdkError::ServiceError { raw, .. } | SdkError::ResponseError { raw, .. }) + if raw.http().status().is_server_error() => + { + RetryKind::Error(ErrorKind::ServerError) + } + Err(_) => RetryKind::UnretryableFailure, + } + } +} + +#[cfg(test)] +mod test { + use crate::http_credential_provider::{CredentialsResponseParser, HttpCredentialRetryPolicy}; + use aws_smithy_http::body::SdkBody; + use aws_smithy_http::operation; + use aws_smithy_http::response::ParseStrictResponse; + use aws_smithy_http::result::{SdkError, SdkSuccess}; + use aws_smithy_http::retry::ClassifyResponse; + use aws_smithy_types::retry::{ErrorKind, RetryKind}; + use aws_types::credentials::CredentialsError; + use aws_types::Credentials; + use bytes::Bytes; + + fn sdk_resp( + resp: http::Response<&'static str>, + ) -> Result, SdkError> { + let resp = resp.map(|data| Bytes::from_static(data.as_bytes())); + match (CredentialsResponseParser { + provider_name: "test", + }) + .parse(&resp) + { + Ok(creds) => Ok(SdkSuccess { + raw: operation::Response::new(resp.map(SdkBody::from)), + parsed: creds, + }), + Err(err) => Err(SdkError::ServiceError { + err, + raw: operation::Response::new(resp.map(SdkBody::from)), + }), + } + } + + #[test] + fn non_parseable_is_retriable() { + let bad_response = http::Response::builder() + .status(200) + .body("notjson") + .unwrap(); + + assert_eq!( + HttpCredentialRetryPolicy.classify(sdk_resp(bad_response).as_ref()), + RetryKind::Error(ErrorKind::ServerError) + ); + } + + #[test] + fn ok_response_not_retriable() { + let ok_response = http::Response::builder() + .status(200) + .body( + r#" { + "AccessKeyId" : "MUA...", + "SecretAccessKey" : "/7PC5om....", + "Token" : "AQoDY....=", + "Expiration" : "2016-02-25T06:03:31Z" + }"#, + ) + .unwrap(); + let sdk_result = sdk_resp(ok_response); + + assert_eq!( + HttpCredentialRetryPolicy.classify(sdk_result.as_ref()), + RetryKind::Unnecessary + ); + + assert!(sdk_result.is_ok(), "should be ok: {:?}", sdk_result) + } + + #[test] + fn explicit_error_not_retriable() { + let error_response = http::Response::builder() + .status(400) + .body(r#"{ "Code": "Error", "Message": "There was a problem, it was your fault" }"#) + .unwrap(); + let sdk_result = sdk_resp(error_response); + assert_eq!( + HttpCredentialRetryPolicy.classify(sdk_result.as_ref()), + RetryKind::UnretryableFailure + ); + let sdk_error = sdk_result.expect_err("should be error"); + + assert!( + matches!( + sdk_error, + SdkError::ServiceError { + err: CredentialsError::ProviderError { .. }, + .. + } + ), + "should be provider error: {}", + sdk_error + ); + } +} diff --git a/patch/aws-config/src/imds/client.rs b/patch/aws-config/src/imds/client.rs new file mode 100644 index 0000000000000..cc0de7c2265f8 --- /dev/null +++ b/patch/aws-config/src/imds/client.rs @@ -0,0 +1,1152 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Raw IMDSv2 Client +//! +//! Client for direct access to IMDSv2. + +use std::borrow::Cow; +use std::convert::TryFrom; +use std::error::Error; +use std::fmt::{Display, Formatter}; +use std::str::FromStr; +use std::time::Duration; + +use aws_http::user_agent::{ApiMetadata, AwsUserAgent, UserAgentStage}; +use aws_smithy_client::{erase::DynConnector, SdkSuccess}; +use aws_smithy_client::{retry, SdkError}; +use aws_smithy_http::body::SdkBody; +use aws_smithy_http::endpoint::Endpoint; +use aws_smithy_http::operation; +use aws_smithy_http::operation::{Metadata, Operation}; +use aws_smithy_http::response::ParseStrictResponse; +use aws_smithy_http::retry::ClassifyResponse; +use aws_smithy_http_tower::map_request::{ + AsyncMapRequestLayer, AsyncMapRequestService, MapRequestLayer, MapRequestService, +}; +use aws_smithy_types::retry::{ErrorKind, RetryKind}; +use aws_smithy_types::timeout; +use aws_types::os_shim_internal::{Env, Fs}; + +use bytes::Bytes; +use http::uri::InvalidUri; +use http::{Response, Uri}; +use tokio::sync::OnceCell; + +use crate::connector::expect_connector; +use crate::imds::client::token::TokenMiddleware; +use crate::profile::ProfileParseError; +use crate::provider_config::ProviderConfig; +use crate::{profile, PKG_VERSION}; +use aws_smithy_client::http_connector::HttpSettings; + +mod token; + +// 6 hours +const DEFAULT_TOKEN_TTL: Duration = Duration::from_secs(21_600); +const DEFAULT_ATTEMPTS: u32 = 4; +const DEFAULT_CONNECT_TIMEOUT: Option = Some(Duration::from_secs(1)); +const DEFAULT_READ_TIMEOUT: Option = Some(Duration::from_secs(1)); + +fn user_agent() -> AwsUserAgent { + AwsUserAgent::new_from_environment(Env::real(), ApiMetadata::new("imds", PKG_VERSION)) +} + +/// IMDSv2 Client +/// +/// Client for IMDSv2. This client handles fetching tokens, retrying on failure, and token +/// caching according to the specified token TTL. +/// +/// _Note: This client ONLY supports IMDSv2. It will not fallback to IMDSv1. See +/// [transitioning to IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html#instance-metadata-transition-to-version-2) +/// for more information._ +/// +/// # Client Configuration +/// The IMDS client can load configuration explicitly, via environment variables, or via +/// `~/.aws/config`. It will first attempt to resolve an endpoint override. If no endpoint +/// override exists, it will attempt to resolve an [`EndpointMode`]. If no +/// [`EndpointMode`] override exists, it will fallback to [`IpV4`](EndpointMode::IpV4). An exhaustive +/// list is below: +/// +/// ## Endpoint configuration list +/// 1. Explicit configuration of `Endpoint` via the [builder](Builder): +/// ```no_run +/// use aws_config::imds::client::Client; +/// use http::Uri; +/// # async fn docs() { +/// let client = Client::builder() +/// .endpoint(Uri::from_static("http://customidms:456/")) +/// .build() +/// .await; +/// # } +/// ``` +/// +/// 2. The `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable. Note: If this environment variable +/// is set, it MUST contain to a valid URI or client construction will fail. +/// +/// 3. The `ec2_metadata_service_endpoint` field in `~/.aws/config`: +/// ```ini +/// [default] +/// # ... other configuration +/// ec2_metadata_service_endpoint = http://my-custom-endpoint:444 +/// ``` +/// +/// 4. An explicitly set endpoint mode: +/// ```no_run +/// use aws_config::imds::client::{Client, EndpointMode}; +/// # async fn docs() { +/// let client = Client::builder().endpoint_mode(EndpointMode::IpV6).build().await; +/// # } +/// ``` +/// +/// 5. An [endpoint mode](EndpointMode) loaded from the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment +/// variable. Valid values: `IPv4`, `IPv6` +/// +/// 6. An [endpoint mode](EndpointMode) loaded from the `ec2_metadata_service_endpoint_mode` field in +/// `~/.aws/config`: +/// ```ini +/// [default] +/// # ... other configuration +/// ec2_metadata_service_endpoint_mode = IPv4 +/// ``` +/// +/// 7. The default value of `http://169.254.169.254` will be used. +/// +#[derive(Debug)] +pub struct Client { + endpoint: Endpoint, + inner: aws_smithy_client::Client, +} + +/// Client where build is sync, but usage is async +/// +/// Building an imds::Client is actually an async operation, however, for credentials and region +/// providers, we want build to always be a synchronous operation. This allows building to be deferred +/// and cached until request time. +#[derive(Debug)] +pub(super) struct LazyClient { + client: OnceCell>, + builder: Builder, +} + +impl LazyClient { + pub fn from_ready_client(client: Client) -> Self { + Self { + client: OnceCell::from(Ok(client)), + // the builder will never be used in this case + builder: Builder::default(), + } + } + pub(super) async fn client(&self) -> Result<&Client, &BuildError> { + let builder = &self.builder; + self.client + // the clone will only happen once when we actually construct it for the first time, + // after that, we will use the cache. + .get_or_init(|| async { + let client = builder.clone().build().await; + if let Err(err) = &client { + tracing::warn!(err = % err, "failed to create IMDS client") + } + client + }) + .await + .as_ref() + } +} + +impl Client { + /// IMDS client builder + pub fn builder() -> Builder { + Builder::default() + } + + /// Retrieve information from IMDS + /// + /// This method will handle loading and caching a session token, combining the `path` with the + /// configured IMDS endpoint, and retrying potential errors. + /// + /// For more information about IMDSv2 methods and functionality, see + /// [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + /// + /// # Examples + /// + /// ```no_run + /// use aws_config::imds::client::Client; + /// # async fn docs() { + /// let client = Client::builder().build().await.expect("valid client"); + /// let ami_id = client + /// .get("/latest/meta-data/ami-id") + /// .await + /// .expect("failure communicating with IMDS"); + /// # } + /// ``` + pub async fn get(&self, path: &str) -> Result { + let operation = self.make_operation(path)?; + self.inner.call(operation).await.map_err(|err| match err { + SdkError::ConstructionFailure(err) => match err.downcast::() { + Ok(token_failure) => *token_failure, + Err(other) => ImdsError::Unexpected(other), + }, + SdkError::TimeoutError(err) => ImdsError::IoError(err), + SdkError::DispatchFailure(err) => ImdsError::IoError(err.into()), + SdkError::ResponseError { err, .. } => ImdsError::IoError(err), + SdkError::ServiceError { + err: InnerImdsError::BadStatus, + raw, + } => ImdsError::ErrorResponse { + response: raw.into_parts().0, + }, + SdkError::ServiceError { + err: InnerImdsError::InvalidUtf8, + .. + } => ImdsError::Unexpected("IMDS returned invalid UTF-8".into()), + }) + } + + /// Creates a aws_smithy_http Operation to for `path` + /// - Convert the path to a URI + /// - Set the base endpoint on the URI + /// - Add a user agent + fn make_operation( + &self, + path: &str, + ) -> Result, ImdsError> { + let mut base_uri: Uri = path.parse().map_err(|_| ImdsError::InvalidPath)?; + self.endpoint.set_endpoint(&mut base_uri, None); + let request = http::Request::builder() + .uri(base_uri) + .body(SdkBody::empty()) + .expect("valid request"); + let mut request = operation::Request::new(request); + request.properties_mut().insert(user_agent()); + Ok(Operation::new(request, ImdsGetResponseHandler) + .with_metadata(Metadata::new("get", "imds")) + .with_retry_policy(ImdsErrorPolicy)) + } +} + +/// An error retrieving metadata from IMDS +#[derive(Debug)] +#[non_exhaustive] +pub enum ImdsError { + /// An IMDSv2 Token could not be loaded + /// + /// Requests to IMDS must be accompanied by a token obtained via a `PUT` request. This is handled + /// transparently by the [`Client`]. + FailedToLoadToken(SdkError), + + /// The `path` was invalid for an IMDS request + /// + /// The `path` parameter must be a valid URI path segment, and it must begin with `/`. + InvalidPath, + + /// An error response was returned from IMDS + #[non_exhaustive] + ErrorResponse { + /// The returned raw response + response: http::Response, + }, + + /// IO Error + /// + /// An error occurred communication with IMDS + IoError(Box), + + /// An unexpected error occurred communicating with IMDS + Unexpected(Box), +} + +impl Display for ImdsError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + ImdsError::FailedToLoadToken(inner) => { + write!(f, "Failed to load session token: {}", inner) + } + ImdsError::InvalidPath => write!( + f, + "IMDS path was not a valid URI. Hint: Does it begin with `/`?" + ), + ImdsError::ErrorResponse { response } => write!( + f, + "Error response from IMDS (code: {}). {:?}", + response.status().as_u16(), + response + ), + ImdsError::IoError(err) => { + write!(f, "An IO error occurred communicating with IMDS: {}", err) + } + ImdsError::Unexpected(err) => write!( + f, + "An unexpected error occurred communicating with IMDS: {}", + err + ), + } + } +} + +impl Error for ImdsError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match &self { + ImdsError::FailedToLoadToken(inner) => Some(inner), + _ => None, + } + } +} + +/// IMDS Middleware +/// +/// The IMDS middleware includes a token-loader & a UserAgent stage +#[derive(Clone, Debug)] +struct ImdsMiddleware { + token_loader: TokenMiddleware, +} + +impl tower::Layer for ImdsMiddleware { + type Service = AsyncMapRequestService, TokenMiddleware>; + + fn layer(&self, inner: S) -> Self::Service { + AsyncMapRequestLayer::for_mapper(self.token_loader.clone()) + .layer(MapRequestLayer::for_mapper(UserAgentStage::new()).layer(inner)) + } +} + +#[derive(Copy, Clone)] +struct ImdsGetResponseHandler; + +#[derive(Debug)] +enum InnerImdsError { + BadStatus, + InvalidUtf8, +} + +impl Display for InnerImdsError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + InnerImdsError::BadStatus => write!(f, "failing status code returned from IMDS"), + InnerImdsError::InvalidUtf8 => write!(f, "IMDS did not return valid UTF-8"), + } + } +} + +impl Error for InnerImdsError {} + +impl ParseStrictResponse for ImdsGetResponseHandler { + type Output = Result; + + fn parse(&self, response: &Response) -> Self::Output { + if response.status().is_success() { + std::str::from_utf8(response.body().as_ref()) + .map(|data| data.to_string()) + .map_err(|_| InnerImdsError::InvalidUtf8) + } else { + Err(InnerImdsError::BadStatus) + } + } +} + +/// IMDSv2 Endpoint Mode +/// +/// IMDS can be accessed in two ways: +/// 1. Via the IpV4 endpoint: `http://169.254.169.254` +/// 2. Via the Ipv6 endpoint: `http://[fd00:ec2::254]` +#[derive(Debug, Clone)] +#[non_exhaustive] +pub enum EndpointMode { + /// IpV4 mode: `http://169.254.169.254` + /// + /// This mode is the default unless otherwise specified. + IpV4, + /// IpV6 mode: `http://[fd00:ec2::254]` + IpV6, +} + +/// Invalid Endpoint Mode +#[derive(Debug, Clone)] +pub struct InvalidEndpointMode(String); + +impl Display for InvalidEndpointMode { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!( + f, + "`{}` is not a valid endpoint mode. Valid values are [`IPv4`, `IPv6`]", + &self.0 + ) + } +} + +impl Error for InvalidEndpointMode {} + +impl FromStr for EndpointMode { + type Err = InvalidEndpointMode; + + fn from_str(value: &str) -> Result { + match value { + _ if value.eq_ignore_ascii_case("ipv4") => Ok(EndpointMode::IpV4), + _ if value.eq_ignore_ascii_case("ipv6") => Ok(EndpointMode::IpV6), + other => Err(InvalidEndpointMode(other.to_owned())), + } + } +} + +impl EndpointMode { + /// IMDS URI for this endpoint mode + fn endpoint(&self) -> Uri { + match self { + EndpointMode::IpV4 => Uri::from_static("http://169.254.169.254"), + EndpointMode::IpV6 => Uri::from_static("http://[fd00:ec2::254]"), + } + } +} + +/// IMDSv2 Client Builder +#[derive(Default, Debug, Clone)] +pub struct Builder { + max_attempts: Option, + endpoint: Option, + mode_override: Option, + token_ttl: Option, + connect_timeout: Option, + read_timeout: Option, + config: Option, +} + +/// Error constructing IMDSv2 Client +#[derive(Debug)] +pub enum BuildError { + /// The endpoint mode was invalid + InvalidEndpointMode(InvalidEndpointMode), + + /// The AWS Profile (e.g. `~/.aws/config`) was invalid + InvalidProfile(ProfileParseError), + + /// The specified endpoint was not a valid URI + InvalidEndpointUri(InvalidUri), +} + +impl Display for BuildError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "failed to build IMDS client: ")?; + match self { + BuildError::InvalidEndpointMode(e) => write!(f, "{}", e), + BuildError::InvalidProfile(e) => write!(f, "{}", e), + BuildError::InvalidEndpointUri(e) => write!(f, "{}", e), + } + } +} + +impl Error for BuildError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match self { + BuildError::InvalidEndpointMode(e) => Some(e), + BuildError::InvalidProfile(e) => Some(e), + BuildError::InvalidEndpointUri(e) => Some(e), + } + } +} + +impl Builder { + /// Override the number of retries for fetching tokens & metadata + /// + /// By default, 4 attempts will be made. + pub fn max_attempts(mut self, max_attempts: u32) -> Self { + self.max_attempts = Some(max_attempts); + self + } + + /// Configure generic options of the [`Client`] + /// + /// # Examples + /// ```no_run + /// # async fn test() { + /// use aws_config::imds::Client; + /// use aws_config::provider_config::ProviderConfig; + /// + /// let provider = Client::builder() + /// .configure(&ProviderConfig::with_default_region().await) + /// .build(); + /// # } + /// ``` + pub fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.config = Some(provider_config.clone()); + self + } + + /// Override the endpoint for the [`Client`] + /// + /// By default, the client will resolve an endpoint from the environment, AWS config, and endpoint mode. + /// + /// See [`Client`] for more information. + pub fn endpoint(mut self, endpoint: impl Into) -> Self { + self.endpoint = Some(EndpointSource::Explicit(endpoint.into())); + self + } + + /// Override the endpoint mode for [`Client`] + /// + /// * When set to [`IpV4`](EndpointMode::IpV4), the endpoint will be `http://169.254.169.254`. + /// * When set to [`IpV6`](EndpointMode::IpV6), the endpoint will be `http://[fd00:ec2::254]`. + pub fn endpoint_mode(mut self, mode: EndpointMode) -> Self { + self.mode_override = Some(mode); + self + } + + /// Override the time-to-live for the session token + /// + /// Requests to IMDS utilize a session token for authentication. By default, session tokens last + /// for 6 hours. When the TTL for the token expires, a new token must be retrieved from the + /// metadata service. + pub fn token_ttl(mut self, ttl: Duration) -> Self { + self.token_ttl = Some(ttl); + self + } + + /// Override the connect timeout for IMDS + /// + /// This value defaults to 1 second + pub fn connect_timeout(mut self, timeout: Duration) -> Self { + self.connect_timeout = Some(timeout); + self + } + + /// Override the read timeout for IMDS + /// + /// This value defaults to 1 second + pub fn read_timeout(mut self, timeout: Duration) -> Self { + self.read_timeout = Some(timeout); + self + } + + /* TODO(https://github.com/awslabs/aws-sdk-rust/issues/339): Support customizing the port explicitly */ + /* + pub fn port(mut self, port: u32) -> Self { + self.port_override = Some(port); + self + }*/ + + pub(super) fn build_lazy(self) -> LazyClient { + LazyClient { + client: OnceCell::new(), + builder: self, + } + } + + /// Build an IMDSv2 Client + pub async fn build(self) -> Result { + let config = self.config.unwrap_or_default(); + let http_timeout_config = timeout::Http::new() + .with_connect_timeout(self.connect_timeout.or(DEFAULT_CONNECT_TIMEOUT).into()) + .with_read_timeout(self.read_timeout.or(DEFAULT_READ_TIMEOUT).into()); + let http_settings = HttpSettings::default().with_http_timeout_config(http_timeout_config); + let connector = expect_connector(config.connector(&http_settings)); + let endpoint_source = self + .endpoint + .unwrap_or_else(|| EndpointSource::Env(config.env(), config.fs())); + let endpoint = endpoint_source.endpoint(self.mode_override).await?; + let endpoint = Endpoint::immutable(endpoint); + let retry_config = retry::Config::default() + .with_max_attempts(self.max_attempts.unwrap_or(DEFAULT_ATTEMPTS)); + let timeout_config = timeout::Config::default(); + let token_loader = token::TokenMiddleware::new( + connector.clone(), + config.time_source(), + endpoint.clone(), + self.token_ttl.unwrap_or(DEFAULT_TOKEN_TTL), + retry_config.clone(), + timeout_config.clone(), + config.sleep(), + ); + let middleware = ImdsMiddleware { token_loader }; + let inner_client = aws_smithy_client::Builder::new() + .connector(connector.clone()) + .middleware(middleware) + .sleep_impl(config.sleep()) + .build() + .with_retry_config(retry_config) + .with_timeout_config(timeout_config); + + let client = Client { + endpoint, + inner: inner_client, + }; + Ok(client) + } +} + +mod env { + pub const ENDPOINT: &str = "AWS_EC2_METADATA_SERVICE_ENDPOINT"; + pub const ENDPOINT_MODE: &str = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE"; +} + +mod profile_keys { + pub const ENDPOINT: &str = "ec2_metadata_service_endpoint"; + pub const ENDPOINT_MODE: &str = "ec2_metadata_service_endpoint_mode"; +} + +/// Endpoint Configuration Abstraction +#[derive(Debug, Clone)] +enum EndpointSource { + Explicit(Uri), + Env(Env, Fs), +} + +impl EndpointSource { + async fn endpoint(&self, mode_override: Option) -> Result { + match self { + EndpointSource::Explicit(uri) => { + if mode_override.is_some() { + tracing::warn!(endpoint = ?uri, mode = ?mode_override, + "Endpoint mode override was set in combination with an explicit endpoint. \ + The mode override will be ignored.") + } + Ok(uri.clone()) + } + EndpointSource::Env(env, fs) => { + // load an endpoint override from the environment + let profile = profile::load(fs, env) + .await + .map_err(BuildError::InvalidProfile)?; + let uri_override = if let Ok(uri) = env.get(env::ENDPOINT) { + Some(Cow::Owned(uri)) + } else { + profile.get(profile_keys::ENDPOINT).map(Cow::Borrowed) + }; + if let Some(uri) = uri_override { + return Uri::try_from(uri.as_ref()).map_err(BuildError::InvalidEndpointUri); + } + + // if not, load a endpoint mode from the environment + let mode = if let Some(mode) = mode_override { + mode + } else if let Ok(mode) = env.get(env::ENDPOINT_MODE) { + mode.parse::() + .map_err(BuildError::InvalidEndpointMode)? + } else if let Some(mode) = profile.get(profile_keys::ENDPOINT_MODE) { + mode.parse::() + .map_err(BuildError::InvalidEndpointMode)? + } else { + EndpointMode::IpV4 + }; + + Ok(mode.endpoint()) + } + } + } +} + +/// Error retrieving token from IMDS +#[derive(Debug)] +pub enum TokenError { + /// The token was invalid + /// + /// Because tokens must be eventually sent as a header, the token must be a valid header value. + InvalidToken, + + /// No TTL was sent + /// + /// The token response must include a time-to-live indicating the lifespan of the token. + NoTtl, + + /// The TTL was invalid + /// + /// The TTL must be a valid positive integer. + InvalidTtl, + + /// Invalid Parameters + /// + /// The request to load a token was malformed. This indicates an SDK bug. + InvalidParameters, + + /// Forbidden + /// + /// IMDS is disabled or has been disallowed via permissions. + Forbidden, +} + +impl Display for TokenError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + TokenError::InvalidToken => write!(f, "Invalid Token"), + TokenError::NoTtl => write!(f, "Token response did not contain a TTL header"), + TokenError::InvalidTtl => write!(f, "The returned TTL was invalid"), + TokenError::InvalidParameters => { + write!(f, "Invalid request parameters. This indicates an SDK bug.") + } + TokenError::Forbidden => write!( + f, + "Request forbidden: IMDS is disabled or the caller has insufficient permissions." + ), + } + } +} + +impl Error for TokenError {} + +#[derive(Clone)] +struct ImdsErrorPolicy; + +impl ImdsErrorPolicy { + fn classify(response: &operation::Response) -> RetryKind { + let status = response.http().status(); + match status { + _ if status.is_server_error() => RetryKind::Error(ErrorKind::ServerError), + // 401 indicates that the token has expired, this is retryable + _ if status.as_u16() == 401 => RetryKind::Error(ErrorKind::ServerError), + // This catch-all includes successful responses that fail to parse. These should not be retried. + _ => RetryKind::UnretryableFailure, + } + } +} + +/// IMDS Retry Policy +/// +/// Possible status codes: +/// - 200 (OK) +/// - 400 (Missing or invalid parameters) **Not Retryable** +/// - 401 (Unauthorized, expired token) **Retryable** +/// - 403 (IMDS disabled): **Not Retryable** +/// - 404 (Not found): **Not Retryable** +/// - >=500 (server error): **Retryable** +impl ClassifyResponse, SdkError> for ImdsErrorPolicy { + fn classify(&self, response: Result<&SdkSuccess, &SdkError>) -> RetryKind { + match response { + Ok(_) => RetryKind::Unnecessary, + Err(SdkError::ResponseError { raw, .. }) | Err(SdkError::ServiceError { raw, .. }) => { + ImdsErrorPolicy::classify(raw) + } + _ => RetryKind::UnretryableFailure, + } + } +} + +#[cfg(test)] +pub(crate) mod test { + use std::collections::HashMap; + use std::error::Error; + use std::io; + use std::time::{Duration, UNIX_EPOCH}; + + use aws_smithy_async::rt::sleep::TokioSleep; + use aws_smithy_client::erase::DynConnector; + use aws_smithy_client::test_connection::{capture_request, TestConnection}; + use aws_smithy_client::{SdkError, SdkSuccess}; + use aws_smithy_http::body::SdkBody; + use aws_smithy_http::operation; + use aws_smithy_types::retry::RetryKind; + use aws_types::os_shim_internal::{Env, Fs, ManualTimeSource, TimeSource}; + use http::header::USER_AGENT; + use http::Uri; + use serde::Deserialize; + use tracing_test::traced_test; + + use crate::imds::client::{Client, EndpointMode, ImdsErrorPolicy}; + use crate::provider_config::ProviderConfig; + + const TOKEN_A: &str = "AQAEAFTNrA4eEGx0AQgJ1arIq_Cc-t4tWt3fB0Hd8RKhXlKc5ccvhg=="; + const TOKEN_B: &str = "alternatetoken=="; + + pub(crate) fn token_request(base: &str, ttl: u32) -> http::Request { + http::Request::builder() + .uri(format!("{}/latest/api/token", base)) + .header("x-aws-ec2-metadata-token-ttl-seconds", ttl) + .method("PUT") + .body(SdkBody::empty()) + .unwrap() + } + + pub(crate) fn token_response(ttl: u32, token: &'static str) -> http::Response<&'static str> { + http::Response::builder() + .status(200) + .header("X-aws-ec2-metadata-token-ttl-seconds", ttl) + .body(token) + .unwrap() + } + + pub(crate) fn imds_request(path: &'static str, token: &str) -> http::Request { + http::Request::builder() + .uri(Uri::from_static(path)) + .method("GET") + .header("x-aws-ec2-metadata-token", token) + .body(SdkBody::empty()) + .unwrap() + } + + pub(crate) fn imds_response(body: &'static str) -> http::Response<&'static str> { + http::Response::builder().status(200).body(body).unwrap() + } + + pub(crate) async fn make_client(conn: &TestConnection) -> super::Client + where + SdkBody: From, + T: Send + 'static, + { + tokio::time::pause(); + super::Client::builder() + .configure( + &ProviderConfig::no_configuration() + .with_sleep(TokioSleep::new()) + .with_http_connector(DynConnector::new(conn.clone())), + ) + .build() + .await + .expect("valid client") + } + + #[tokio::test] + async fn client_caches_token() { + let connection = TestConnection::new(vec![ + ( + token_request("http://169.254.169.254", 21600), + token_response(21600, TOKEN_A), + ), + ( + imds_request("http://169.254.169.254/latest/metadata", TOKEN_A), + imds_response(r#"test-imds-output"#), + ), + ( + imds_request("http://169.254.169.254/latest/metadata2", TOKEN_A), + imds_response("output2"), + ), + ]); + let client = make_client(&connection).await; + // load once + let metadata = client.get("/latest/metadata").await.expect("failed"); + assert_eq!(metadata, "test-imds-output"); + // load again: the cached token should be used + let metadata = client.get("/latest/metadata2").await.expect("failed"); + assert_eq!(metadata, "output2"); + connection.assert_requests_match(&[]); + } + + #[tokio::test] + async fn token_can_expire() { + let connection = TestConnection::new(vec![ + ( + token_request("http://[fd00:ec2::254]", 600), + token_response(600, TOKEN_A), + ), + ( + imds_request("http://[fd00:ec2::254]/latest/metadata", TOKEN_A), + imds_response(r#"test-imds-output1"#), + ), + ( + token_request("http://[fd00:ec2::254]", 600), + token_response(600, TOKEN_B), + ), + ( + imds_request("http://[fd00:ec2::254]/latest/metadata", TOKEN_B), + imds_response(r#"test-imds-output2"#), + ), + ]); + let mut time_source = ManualTimeSource::new(UNIX_EPOCH); + tokio::time::pause(); + let client = super::Client::builder() + .configure( + &ProviderConfig::no_configuration() + .with_http_connector(DynConnector::new(connection.clone())) + .with_time_source(TimeSource::manual(&time_source)) + .with_sleep(TokioSleep::new()), + ) + .endpoint_mode(EndpointMode::IpV6) + .token_ttl(Duration::from_secs(600)) + .build() + .await + .expect("valid client"); + + let resp1 = client.get("/latest/metadata").await.expect("success"); + // now the cached credential has expired + time_source.advance(Duration::from_secs(600)); + let resp2 = client.get("/latest/metadata").await.expect("success"); + connection.assert_requests_match(&[]); + assert_eq!(resp1, "test-imds-output1"); + assert_eq!(resp2, "test-imds-output2"); + } + + /// Tokens are refreshed up to 120 seconds early to avoid using an expired token. + #[tokio::test] + async fn token_refresh_buffer() { + let connection = TestConnection::new(vec![ + ( + token_request("http://[fd00:ec2::254]", 600), + token_response(600, TOKEN_A), + ), + // t = 0 + ( + imds_request("http://[fd00:ec2::254]/latest/metadata", TOKEN_A), + imds_response(r#"test-imds-output1"#), + ), + // t = 400 (no refresh) + ( + imds_request("http://[fd00:ec2::254]/latest/metadata", TOKEN_A), + imds_response(r#"test-imds-output2"#), + ), + // t = 550 (within buffer) + ( + token_request("http://[fd00:ec2::254]", 600), + token_response(600, TOKEN_B), + ), + ( + imds_request("http://[fd00:ec2::254]/latest/metadata", TOKEN_B), + imds_response(r#"test-imds-output3"#), + ), + ]); + tokio::time::pause(); + let mut time_source = ManualTimeSource::new(UNIX_EPOCH); + let client = super::Client::builder() + .configure( + &ProviderConfig::no_configuration() + .with_http_connector(DynConnector::new(connection.clone())) + .with_time_source(TimeSource::manual(&time_source)), + ) + .endpoint_mode(EndpointMode::IpV6) + .token_ttl(Duration::from_secs(600)) + .build() + .await + .expect("valid client"); + + let resp1 = client.get("/latest/metadata").await.expect("success"); + // now the cached credential has expired + time_source.advance(Duration::from_secs(400)); + let resp2 = client.get("/latest/metadata").await.expect("success"); + time_source.advance(Duration::from_secs(150)); + let resp3 = client.get("/latest/metadata").await.expect("success"); + connection.assert_requests_match(&[]); + assert_eq!(resp1, "test-imds-output1"); + assert_eq!(resp2, "test-imds-output2"); + assert_eq!(resp3, "test-imds-output3"); + } + + /// 500 error during the GET should be retried + #[tokio::test] + #[traced_test] + async fn retry_500() { + let connection = TestConnection::new(vec![ + ( + token_request("http://169.254.169.254", 21600), + token_response(21600, TOKEN_A), + ), + ( + imds_request("http://169.254.169.254/latest/metadata", TOKEN_A), + http::Response::builder().status(500).body("").unwrap(), + ), + ( + imds_request("http://169.254.169.254/latest/metadata", TOKEN_A), + imds_response("ok"), + ), + ]); + let client = make_client(&connection).await; + assert_eq!(client.get("/latest/metadata").await.expect("success"), "ok"); + connection.assert_requests_match(&[]); + + // all requests should have a user agent header + for request in connection.requests().iter() { + assert!(request.actual.headers().get(USER_AGENT).is_some()); + } + } + + /// 500 error during token acquisition should be retried + #[tokio::test] + #[traced_test] + async fn retry_token_failure() { + let connection = TestConnection::new(vec![ + ( + token_request("http://169.254.169.254", 21600), + http::Response::builder().status(500).body("").unwrap(), + ), + ( + token_request("http://169.254.169.254", 21600), + token_response(21600, TOKEN_A), + ), + ( + imds_request("http://169.254.169.254/latest/metadata", TOKEN_A), + imds_response("ok"), + ), + ]); + let client = make_client(&connection).await; + assert_eq!(client.get("/latest/metadata").await.expect("success"), "ok"); + connection.assert_requests_match(&[]); + } + + /// 403 responses from IMDS during token acquisition MUST NOT be retried + #[tokio::test] + #[traced_test] + async fn no_403_retry() { + let connection = TestConnection::new(vec![( + token_request("http://169.254.169.254", 21600), + http::Response::builder().status(403).body("").unwrap(), + )]); + let client = make_client(&connection).await; + let err = client.get("/latest/metadata").await.expect_err("no token"); + assert!(format!("{}", err).contains("forbidden"), "{}", err); + connection.assert_requests_match(&[]); + } + + /// Successful responses should classify as `RetryKind::Unnecessary` + #[test] + fn successful_response_properly_classified() { + use aws_smithy_http::retry::ClassifyResponse; + + let policy = ImdsErrorPolicy; + fn response_200() -> operation::Response { + operation::Response::new(imds_response("").map(|_| SdkBody::empty())) + } + let success = SdkSuccess { + raw: response_200(), + parsed: (), + }; + assert_eq!( + RetryKind::Unnecessary, + policy.classify(Ok::<_, &SdkError<()>>(&success)) + ); + + // Emulate a failure to parse the response body (using an io error since it's easy to construct in a test) + let failure = SdkError::<()>::ResponseError { + err: Box::new(io::Error::new(io::ErrorKind::BrokenPipe, "fail to parse")), + raw: response_200(), + }; + assert_eq!( + RetryKind::UnretryableFailure, + policy.classify(Err::<&SdkSuccess<()>, _>(&failure)) + ); + } + + // since tokens are sent as headers, the tokens need to be valid header values + #[tokio::test] + async fn invalid_token() { + let connection = TestConnection::new(vec![( + token_request("http://169.254.169.254", 21600), + token_response(21600, "replaced").map(|_| vec![1, 0]), + )]); + let client = make_client(&connection).await; + let err = client.get("/latest/metadata").await.expect_err("no token"); + assert!(format!("{}", err).contains("Invalid Token"), "{}", err); + connection.assert_requests_match(&[]); + } + + #[tokio::test] + async fn non_utf8_response() { + let connection = TestConnection::new(vec![ + ( + token_request("http://169.254.169.254", 21600), + token_response(21600, TOKEN_A).map(SdkBody::from), + ), + ( + imds_request("http://169.254.169.254/latest/metadata", TOKEN_A), + http::Response::builder() + .status(200) + .body(SdkBody::from(vec![0xA0 as u8, 0xA1 as u8])) + .unwrap(), + ), + ]); + let client = make_client(&connection).await; + let err = client.get("/latest/metadata").await.expect_err("no token"); + assert!(format!("{}", err).contains("invalid UTF-8"), "{}", err); + connection.assert_requests_match(&[]); + } + + /// Verify that the end-to-end real client has a 1-second connect timeout + #[tokio::test] + #[cfg(any(feature = "rustls", feature = "native-tls"))] + async fn one_second_connect_timeout() { + use crate::imds::client::ImdsError; + use std::time::SystemTime; + + let client = Client::builder() + // 240.* can never be resolved + .endpoint(Uri::from_static("http://240.0.0.0")) + .build() + .await + .expect("valid client"); + let now = SystemTime::now(); + let resp = client + .get("/latest/metadata") + .await + .expect_err("240.0.0.0 will never resolve"); + let time_elapsed = now.elapsed().unwrap(); + assert!( + time_elapsed > Duration::from_secs(1), + "time_elapsed should be greater than 1s but was {:?}", + time_elapsed + ); + assert!( + time_elapsed < Duration::from_secs(2), + "time_elapsed should be less than 2s but was {:?}", + time_elapsed + ); + match resp { + ImdsError::FailedToLoadToken(err) if format!("{}", err).contains("timeout") => {} // ok, + other => panic!( + "wrong error, expected construction failure with TimedOutError inside: {}", + other + ), + } + } + + #[derive(Debug, Deserialize)] + struct ImdsConfigTest { + env: HashMap, + fs: HashMap, + endpoint_override: Option, + mode_override: Option, + result: Result, + docs: String, + } + + #[tokio::test] + async fn config_tests() -> Result<(), Box> { + let test_cases = std::fs::read_to_string("test-data/imds-config/imds-tests.json")?; + #[derive(Deserialize)] + struct TestCases { + tests: Vec, + } + + let test_cases: TestCases = serde_json::from_str(&test_cases)?; + let test_cases = test_cases.tests; + for test in test_cases { + check(test).await; + } + Ok(()) + } + + async fn check(test_case: ImdsConfigTest) { + let (server, watcher) = capture_request(None); + let provider_config = ProviderConfig::no_configuration() + .with_env(Env::from(test_case.env)) + .with_fs(Fs::from_map(test_case.fs)) + .with_http_connector(DynConnector::new(server)); + let mut imds_client = Client::builder().configure(&provider_config); + if let Some(endpoint_override) = test_case.endpoint_override { + imds_client = imds_client.endpoint(endpoint_override.parse::().unwrap()); + } + + if let Some(mode_override) = test_case.mode_override { + imds_client = imds_client.endpoint_mode(mode_override.parse().unwrap()); + } + + let imds_client = imds_client.build().await; + let (uri, imds_client) = match (&test_case.result, imds_client) { + (Ok(uri), Ok(client)) => (uri, client), + (Err(test), Ok(_client)) => panic!( + "test should fail: {} but a valid client was made. {}", + test, test_case.docs + ), + (Err(substr), Err(err)) => { + assert!( + format!("{}", err).contains(substr), + "`{}` did not contain `{}`", + err, + substr + ); + return; + } + (Ok(_uri), Err(e)) => panic!( + "a valid client should be made but: {}. {}", + e, test_case.docs + ), + }; + // this request will fail, we just want to capture the endpoint configuration + let _ = imds_client.get("/hello").await; + assert_eq!(&watcher.expect_request().uri().to_string(), uri); + } +} diff --git a/patch/aws-config/src/imds/client/token.rs b/patch/aws-config/src/imds/client/token.rs new file mode 100644 index 0000000000000..dcb185b75ce05 --- /dev/null +++ b/patch/aws-config/src/imds/client/token.rs @@ -0,0 +1,197 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! IMDS Token Middleware +//! Requests to IMDS are two part: +//! 1. A PUT request to the token API is made +//! 2. A GET request is made to the requested API. The Token is added as a header. +//! +//! This module implements a middleware that will: +//! - Load a token via the token API +//! - Cache the token according to the TTL +//! - Retry token loading when it fails +//! - Attach the token to the request in the `x-aws-ec2-metadata-token` header + +use std::fmt::{Debug, Formatter}; +use std::future::Future; +use std::pin::Pin; +use std::sync::Arc; +use std::time::{Duration, SystemTime}; + +use aws_http::user_agent::UserAgentStage; +use aws_smithy_async::rt::sleep::AsyncSleep; +use aws_smithy_client::erase::DynConnector; +use aws_smithy_client::retry; +use aws_smithy_http::body::SdkBody; +use aws_smithy_http::endpoint::Endpoint; +use aws_smithy_http::middleware::AsyncMapRequest; +use aws_smithy_http::operation; +use aws_smithy_http::operation::Operation; +use aws_smithy_http::operation::{Metadata, Request}; +use aws_smithy_http::response::ParseStrictResponse; +use aws_smithy_http_tower::map_request::MapRequestLayer; +use aws_smithy_types::timeout; +use aws_types::os_shim_internal::TimeSource; + +use http::{HeaderValue, Uri}; + +use crate::cache::ExpiringCache; +use crate::imds::client::{ImdsError, ImdsErrorPolicy, TokenError}; + +/// Token Refresh Buffer +/// +/// Tokens are cached to remove the need to reload the token between subsequent requests. To ensure +/// that a request never fails with a 401 (expired token), a buffer window exists during which the token +/// may not be expired, but will still be refreshed. +const TOKEN_REFRESH_BUFFER: Duration = Duration::from_secs(120); + +const X_AWS_EC2_METADATA_TOKEN_TTL_SECONDS: &str = "x-aws-ec2-metadata-token-ttl-seconds"; +const X_AWS_EC2_METADATA_TOKEN: &str = "x-aws-ec2-metadata-token"; + +/// IMDS Token +#[derive(Clone)] +struct Token { + value: HeaderValue, + expiry: SystemTime, +} + +/// Token Middleware +/// +/// Token middleware will load/cache a token when required and handle caching/expiry. +/// +/// It will attach the token to the incoming request on the `x-aws-ec2-metadata-token` header. +#[derive(Clone)] +pub(super) struct TokenMiddleware { + client: Arc>>, + token_parser: GetTokenResponseHandler, + token: ExpiringCache, + time_source: TimeSource, + endpoint: Endpoint, + token_ttl: Duration, +} + +impl Debug for TokenMiddleware { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "ImdsTokenMiddleware") + } +} + +impl TokenMiddleware { + pub(super) fn new( + connector: DynConnector, + time_source: TimeSource, + endpoint: Endpoint, + token_ttl: Duration, + retry_config: retry::Config, + timeout_config: timeout::Config, + sleep_impl: Option>, + ) -> Self { + let inner_client = aws_smithy_client::Builder::new() + .connector(connector) + .sleep_impl(sleep_impl) + .build() + .with_retry_config(retry_config) + .with_timeout_config(timeout_config); + let client = Arc::new(inner_client); + Self { + client, + token_parser: GetTokenResponseHandler { + time: time_source.clone(), + }, + token: ExpiringCache::new(TOKEN_REFRESH_BUFFER), + time_source, + endpoint, + token_ttl, + } + } + async fn add_token(&self, request: Request) -> Result { + let preloaded_token = self + .token + .yield_or_clear_if_expired(self.time_source.now()) + .await; + let token = match preloaded_token { + Some(token) => Ok(token), + None => { + self.token + .get_or_load(|| async move { self.get_token().await }) + .await + } + }?; + request.augment(|mut request, _| { + request + .headers_mut() + .insert(X_AWS_EC2_METADATA_TOKEN, token.value); + Ok(request) + }) + } + + async fn get_token(&self) -> Result<(Token, SystemTime), ImdsError> { + let mut uri = Uri::from_static("/latest/api/token"); + self.endpoint.set_endpoint(&mut uri, None); + let request = http::Request::builder() + .header( + X_AWS_EC2_METADATA_TOKEN_TTL_SECONDS, + self.token_ttl.as_secs(), + ) + .uri(uri) + .method("PUT") + .body(SdkBody::empty()) + .expect("valid HTTP request"); + let mut request = operation::Request::new(request); + request.properties_mut().insert(super::user_agent()); + + let operation = Operation::new(request, self.token_parser.clone()) + .with_retry_policy(ImdsErrorPolicy) + .with_metadata(Metadata::new("get-token", "imds")); + let response = self + .client + .call(operation) + .await + .map_err(ImdsError::FailedToLoadToken)?; + let expiry = response.expiry; + Ok((response, expiry)) + } +} + +impl AsyncMapRequest for TokenMiddleware { + type Error = ImdsError; + type Future = Pin> + Send + 'static>>; + + fn apply(&self, request: Request) -> Self::Future { + let this = self.clone(); + Box::pin(async move { this.add_token(request).await }) + } +} + +#[derive(Clone)] +struct GetTokenResponseHandler { + time: TimeSource, +} + +impl ParseStrictResponse for GetTokenResponseHandler { + type Output = Result; + + fn parse(&self, response: &http::Response) -> Self::Output { + match response.status().as_u16() { + 400 => return Err(TokenError::InvalidParameters), + 403 => return Err(TokenError::Forbidden), + _ => {} + } + let value = HeaderValue::from_maybe_shared(response.body().clone()) + .map_err(|_| TokenError::InvalidToken)?; + let ttl: u64 = response + .headers() + .get(X_AWS_EC2_METADATA_TOKEN_TTL_SECONDS) + .ok_or(TokenError::NoTtl)? + .to_str() + .map_err(|_| TokenError::InvalidTtl)? + .parse() + .map_err(|_parse_error| TokenError::InvalidTtl)?; + Ok(Token { + value, + expiry: self.time.now() + Duration::from_secs(ttl), + }) + } +} diff --git a/patch/aws-config/src/imds/credentials.rs b/patch/aws-config/src/imds/credentials.rs new file mode 100644 index 0000000000000..e06a48acf6a85 --- /dev/null +++ b/patch/aws-config/src/imds/credentials.rs @@ -0,0 +1,251 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! IMDSv2 Credentials Provider +//! +//! # Important +//! This credential provider will NOT fallback to IMDSv1. Ensure that IMDSv2 is enabled on your instances. + +use crate::imds; +use crate::imds::client::{ImdsError, LazyClient}; +use crate::json_credentials::{parse_json_credentials, JsonCredentials}; +use crate::provider_config::ProviderConfig; +use aws_smithy_client::SdkError; +use aws_types::credentials::{future, CredentialsError, ProvideCredentials}; +use aws_types::os_shim_internal::Env; +use aws_types::{credentials, Credentials}; +use std::borrow::Cow; + +/// IMDSv2 Credentials Provider +/// +/// _Note: This credentials provider will NOT fallback to the IMDSv1 flow._ +#[derive(Debug)] +pub struct ImdsCredentialsProvider { + client: LazyClient, + env: Env, + profile: Option, +} + +/// Builder for [`ImdsCredentialsProvider`] +#[derive(Default, Debug)] +pub struct Builder { + provider_config: Option, + profile_override: Option, + imds_override: Option, +} + +impl Builder { + /// Override the configuration used for this provider + pub fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.provider_config = Some(provider_config.clone()); + self + } + + /// Override the [instance profile](instance-profile) used for this provider. + /// + /// When retrieving IMDS credentials, a call must first be made to + /// `/latest/meta-data/iam/security-credentials`. This returns the instance + /// profile used. By setting this parameter, retrieving the profile is skipped + /// and the provided value is used instead. + /// + /// [instance-profile]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile + pub fn profile(mut self, profile: impl Into) -> Self { + self.profile_override = Some(profile.into()); + self + } + + /// Override the IMDS client used for this provider + /// + /// The IMDS client will be loaded and configured via `~/.aws/config` and environment variables, + /// however, if necessary the entire client may be provided directly. + /// + /// For more information about IMDS client configuration loading see [`imds::Client`] + pub fn imds_client(mut self, client: imds::Client) -> Self { + if self.provider_config.is_some() { + tracing::warn!("provider config override by a full client override"); + } + self.imds_override = Some(client); + self + } + + /// Create an [`ImdsCredentialsProvider`] from this builder. + pub fn build(self) -> ImdsCredentialsProvider { + let provider_config = self.provider_config.unwrap_or_default(); + let env = provider_config.env(); + let client = self + .imds_override + .map(LazyClient::from_ready_client) + .unwrap_or_else(|| { + imds::Client::builder() + .configure(&provider_config) + .build_lazy() + }); + ImdsCredentialsProvider { + client, + env, + profile: self.profile_override, + } + } +} + +mod codes { + pub(super) const ASSUME_ROLE_UNAUTHORIZED_ACCESS: &str = "AssumeRoleUnauthorizedAccess"; +} + +impl ProvideCredentials for ImdsCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a> + where + Self: 'a, + { + future::ProvideCredentials::new(self.credentials()) + } +} + +impl ImdsCredentialsProvider { + /// Builder for [`ImdsCredentialsProvider`] + pub fn builder() -> Builder { + Builder::default() + } + + fn imds_disabled(&self) -> bool { + match self.env.get(super::env::EC2_METADATA_DISABLED) { + Ok(value) => value.eq_ignore_ascii_case("true"), + _ => false, + } + } + + /// Load an inner IMDS client from the OnceCell + async fn client(&self) -> Result<&imds::Client, CredentialsError> { + self.client.client().await.map_err(|build_error| { + // need to format the build error since we don't own it and it can't be cloned + CredentialsError::invalid_configuration(format!("{}", build_error)) + }) + } + + /// Retrieve the instance profile from IMDS + async fn get_profile_uncached(&self) -> Result { + match self + .client() + .await? + .get("/latest/meta-data/iam/security-credentials") + .await + { + Ok(profile) => Ok(profile), + Err(ImdsError::ErrorResponse { response, .. }) if response.status().as_u16() == 404 => { + tracing::info!( + "received 404 from IMDS when loading profile information. \ + Hint: This instance may not have an IAM role associated." + ); + Err(CredentialsError::not_loaded("received 404 from IMDS")) + } + Err(ImdsError::FailedToLoadToken(SdkError::DispatchFailure(err))) => Err( + CredentialsError::not_loaded(format!("could not communicate with imds: {}", err)), + ), + Err(other) => Err(CredentialsError::provider_error(other)), + } + } + + async fn credentials(&self) -> credentials::Result { + if self.imds_disabled() { + tracing::debug!("IMDS disabled because $AWS_EC2_METADATA_DISABLED was set to `true`"); + return Err(CredentialsError::not_loaded( + "IMDS disabled by $AWS_ECS_METADATA_DISABLED", + )); + } + tracing::debug!("loading credentials from IMDS"); + let profile: Cow = match &self.profile { + Some(profile) => profile.into(), + None => self.get_profile_uncached().await?.into(), + }; + tracing::debug!(profile = %profile, "loaded profile"); + let credentials = self + .client() + .await? + .get(&format!( + "/latest/meta-data/iam/security-credentials/{}", + profile + )) + .await + .map_err(CredentialsError::provider_error)?; + match parse_json_credentials(&credentials) { + Ok(JsonCredentials::RefreshableCredentials { + access_key_id, + secret_access_key, + session_token, + expiration, + .. + }) => Ok(Credentials::new( + access_key_id, + secret_access_key, + Some(session_token.to_string()), + expiration.into(), + "IMDSv2", + )), + Ok(JsonCredentials::Error { code, message }) + if code == codes::ASSUME_ROLE_UNAUTHORIZED_ACCESS => + { + Err(CredentialsError::invalid_configuration(format!( + "Incorrect IMDS/IAM configuration: [{}] {}. \ + Hint: Does this role have a trust relationship with EC2?", + code, message + ))) + } + Ok(JsonCredentials::Error { code, message }) => { + Err(CredentialsError::provider_error(format!( + "Error retrieving credentials from IMDS: {} {}", + code, message + ))) + } + // got bad data from IMDS, should not occur during normal operation: + Err(invalid) => Err(CredentialsError::unhandled(invalid)), + } + } +} + +#[cfg(test)] +mod test { + use crate::imds::client::test::{ + imds_request, imds_response, make_client, token_request, token_response, + }; + use crate::imds::credentials::ImdsCredentialsProvider; + use aws_smithy_client::test_connection::TestConnection; + use aws_types::credentials::ProvideCredentials; + + const TOKEN_A: &str = "token_a"; + + #[tokio::test] + async fn profile_is_not_cached() { + let connection = TestConnection::new(vec![ + ( + token_request("http://169.254.169.254", 21600), + token_response(21600, TOKEN_A), + ), + ( + imds_request("http://169.254.169.254/latest/meta-data/iam/security-credentials", TOKEN_A), + imds_response(r#"profile-name"#), + ), + ( + imds_request("http://169.254.169.254/latest/meta-data/iam/security-credentials/profile-name", TOKEN_A), + imds_response("{\n \"Code\" : \"Success\",\n \"LastUpdated\" : \"2021-09-20T21:42:26Z\",\n \"Type\" : \"AWS-HMAC\",\n \"AccessKeyId\" : \"ASIARTEST\",\n \"SecretAccessKey\" : \"testsecret\",\n \"Token\" : \"testtoken\",\n \"Expiration\" : \"2021-09-21T04:16:53Z\"\n}"), + ), + ( + imds_request("http://169.254.169.254/latest/meta-data/iam/security-credentials", TOKEN_A), + imds_response(r#"different-profile"#), + ), + ( + imds_request("http://169.254.169.254/latest/meta-data/iam/security-credentials/different-profile", TOKEN_A), + imds_response("{\n \"Code\" : \"Success\",\n \"LastUpdated\" : \"2021-09-20T21:42:26Z\",\n \"Type\" : \"AWS-HMAC\",\n \"AccessKeyId\" : \"ASIARTEST2\",\n \"SecretAccessKey\" : \"testsecret\",\n \"Token\" : \"testtoken\",\n \"Expiration\" : \"2021-09-21T04:16:53Z\"\n}"), + ), + ]); + let client = ImdsCredentialsProvider::builder() + .imds_client(make_client(&connection).await) + .build(); + let creds1 = client.provide_credentials().await.expect("valid creds"); + let creds2 = client.provide_credentials().await.expect("valid creds"); + assert_eq!(creds1.access_key_id(), "ASIARTEST"); + assert_eq!(creds2.access_key_id(), "ASIARTEST2"); + connection.assert_requests_match(&[]); + } +} diff --git a/patch/aws-config/src/imds/mod.rs b/patch/aws-config/src/imds/mod.rs new file mode 100644 index 0000000000000..c6190a876bedf --- /dev/null +++ b/patch/aws-config/src/imds/mod.rs @@ -0,0 +1,19 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! IMDSv2 Client, credential, and region provider +//! +//! See [`client`] for more information. +pub mod client; + +pub mod credentials; +pub mod region; + +mod env { + pub(crate) const EC2_METADATA_DISABLED: &str = "AWS_EC2_METADATA_DISABLED"; +} + +#[doc(inline)] +pub use client::Client; diff --git a/patch/aws-config/src/imds/region.rs b/patch/aws-config/src/imds/region.rs new file mode 100644 index 0000000000000..ec7b5124616bf --- /dev/null +++ b/patch/aws-config/src/imds/region.rs @@ -0,0 +1,177 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! IMDS Region Provider +//! +//! Load region from IMDS from `/latest/meta-data/placement/region` +//! This provider has a 5 second timeout. + +use crate::imds; +use crate::imds::client::LazyClient; +use crate::meta::region::{future, ProvideRegion}; +use crate::provider_config::ProviderConfig; + +use aws_types::os_shim_internal::Env; +use aws_types::region::Region; + +use tracing::Instrument; + +/// IMDSv2 Region Provider +/// +/// This provider is included in the default region chain, so it does not need to be used manually. +#[derive(Debug)] +pub struct ImdsRegionProvider { + client: LazyClient, + env: Env, +} + +const REGION_PATH: &str = "/latest/meta-data/placement/region"; + +impl ImdsRegionProvider { + /// Builder for [`ImdsRegionProvider`] + pub fn builder() -> Builder { + Builder::default() + } + + fn imds_disabled(&self) -> bool { + match self.env.get(super::env::EC2_METADATA_DISABLED) { + Ok(value) => value.eq_ignore_ascii_case("true"), + _ => false, + } + } + + /// Load a region from IMDS + /// + /// This provider uses the API `/latest/meta-data/placement/region` + pub async fn region(&self) -> Option { + if self.imds_disabled() { + tracing::debug!("not using IMDS to load region, IMDS is disabled"); + return None; + } + let client = self.client.client().await.ok()?; + match client.get(REGION_PATH).await { + Ok(region) => { + tracing::info!(region = % region, "loaded region from IMDS"); + Some(Region::new(region)) + } + Err(err) => { + tracing::warn!(err = % err, "failed to load region from IMDS"); + None + } + } + } +} + +impl ProvideRegion for ImdsRegionProvider { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::new( + self.region() + .instrument(tracing::debug_span!("imds_load_region")), + ) + } +} + +/// Builder for [`ImdsRegionProvider`] +#[derive(Default)] +pub struct Builder { + provider_config: Option, + imds_client_override: Option, +} + +impl Builder { + /// Set configuration options of the [`Builder`] + pub fn configure(self, provider_config: &ProviderConfig) -> Self { + Self { + provider_config: Some(provider_config.clone()), + ..self + } + } + + /// Override the IMDS client used to load the region + pub fn imds_client(mut self, imds_client: imds::Client) -> Self { + self.imds_client_override = Some(imds_client); + self + } + + /// Create an [`ImdsRegionProvider`] from this builder + pub fn build(self) -> ImdsRegionProvider { + let provider_config = self.provider_config.unwrap_or_default(); + let client = self + .imds_client_override + .map(LazyClient::from_ready_client) + .unwrap_or_else(|| { + imds::Client::builder() + .configure(&provider_config) + .build_lazy() + }); + ImdsRegionProvider { + client, + env: provider_config.env(), + } + } +} + +#[cfg(test)] +mod test { + use crate::imds::client::test::{imds_request, imds_response, token_request, token_response}; + use crate::imds::region::ImdsRegionProvider; + use crate::provider_config::ProviderConfig; + use aws_sdk_sts::Region; + use aws_smithy_async::rt::sleep::TokioSleep; + use aws_smithy_client::erase::DynConnector; + use aws_smithy_client::test_connection::TestConnection; + use aws_smithy_http::body::SdkBody; + use tracing_test::traced_test; + + #[tokio::test] + async fn load_region() { + let conn = TestConnection::new(vec![ + ( + token_request("http://169.254.169.254", 21600), + token_response(21600, "token"), + ), + ( + imds_request( + "http://169.254.169.254/latest/meta-data/placement/region", + "token", + ), + imds_response("eu-west-1"), + ), + ]); + let provider = ImdsRegionProvider::builder() + .configure( + &ProviderConfig::no_configuration() + .with_http_connector(DynConnector::new(conn)) + .with_sleep(TokioSleep::new()), + ) + .build(); + assert_eq!( + provider.region().await.expect("returns region"), + Region::new("eu-west-1") + ); + } + + #[traced_test] + #[tokio::test] + async fn no_region_imds_disabled() { + let conn = TestConnection::new(vec![( + token_request("http://169.254.169.254", 21600), + http::Response::builder() + .status(403) + .body(SdkBody::empty()) + .unwrap(), + )]); + let provider = ImdsRegionProvider::builder() + .configure( + &ProviderConfig::no_configuration() + .with_http_connector(DynConnector::new(conn)) + .with_sleep(TokioSleep::new()), + ) + .build(); + assert_eq!(provider.region().await, None); + assert!(logs_contain("failed to load region from IMDS")); + assert!(logs_contain("IMDS is disabled")); + } +} diff --git a/patch/aws-config/src/json_credentials.rs b/patch/aws-config/src/json_credentials.rs new file mode 100644 index 0000000000000..22a5f00c8bc16 --- /dev/null +++ b/patch/aws-config/src/json_credentials.rs @@ -0,0 +1,377 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_smithy_json::deserialize::token::skip_value; +use aws_smithy_json::deserialize::{json_token_iter, EscapeError, Token}; +use aws_smithy_types::date_time::Format; +use aws_smithy_types::DateTime; +use std::borrow::Cow; +use std::convert::TryFrom; +use std::error::Error; +use std::fmt::{Display, Formatter}; +use std::time::SystemTime; + +#[derive(Debug)] +pub(crate) enum InvalidJsonCredentials { + /// The response did not contain valid JSON + JsonError(Box), + /// The response was missing a required field + MissingField(&'static str), + + /// A field was invalid + InvalidField { + field: &'static str, + err: Box, + }, + + /// Another unhandled error occurred + Other(Cow<'static, str>), +} + +impl From for InvalidJsonCredentials { + fn from(err: EscapeError) -> Self { + InvalidJsonCredentials::JsonError(err.into()) + } +} + +impl From for InvalidJsonCredentials { + fn from(err: aws_smithy_json::deserialize::Error) -> Self { + InvalidJsonCredentials::JsonError(err.into()) + } +} + +impl Display for InvalidJsonCredentials { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + InvalidJsonCredentials::JsonError(json) => { + write!(f, "invalid JSON in response: {}", json) + } + InvalidJsonCredentials::MissingField(field) => write!( + f, + "Expected field `{}` in response but it was missing", + field + ), + InvalidJsonCredentials::Other(msg) => write!(f, "{}", msg), + InvalidJsonCredentials::InvalidField { field, err } => { + write!(f, "Invalid field in response: `{}`. {}", field, err) + } + } + } +} + +impl Error for InvalidJsonCredentials {} + +#[non_exhaustive] +#[derive(Debug, PartialEq, Eq)] +pub(crate) enum JsonCredentials<'a> { + RefreshableCredentials { + access_key_id: Cow<'a, str>, + secret_access_key: Cow<'a, str>, + session_token: Cow<'a, str>, + expiration: SystemTime, + }, + Error { + code: Cow<'a, str>, + message: Cow<'a, str>, + }, // TODO(https://github.com/awslabs/aws-sdk-rust/issues/340): Add support for static credentials: + // { + // "AccessKeyId" : "MUA...", + // "SecretAccessKey" : "/7PC5om...." + // } + + // TODO(https://github.com/awslabs/aws-sdk-rust/issues/340): Add support for Assume role credentials: + // { + // // fields to construct STS client: + // "Region": "sts-region-name", + // "AccessKeyId" : "MUA...", + // "Expiration" : "2016-02-25T06:03:31Z", // optional + // "SecretAccessKey" : "/7PC5om....", + // "Token" : "AQoDY....=", // optional + // // fields controlling the STS role: + // "RoleArn": "...", // required + // "RoleSessionName": "...", // required + // // and also: DurationSeconds, ExternalId, SerialNumber, TokenCode, Policy + // ... + // } +} + +/// Deserialize an IMDS response from a string +/// +/// There are two levels of error here: the top level distinguishes between a successfully parsed +/// response from the credential provider vs. something invalid / unexpected. The inner error +/// distinguishes between a successful response that contains credentials vs. an error with a code and +/// error message. +/// +/// Keys are case insensitive. +pub(crate) fn parse_json_credentials( + credentials_response: &str, +) -> Result { + let mut code = None; + let mut access_key_id = None; + let mut secret_access_key = None; + let mut session_token = None; + let mut expiration = None; + let mut message = None; + json_parse_loop(credentials_response.as_bytes(), |key, value| { + match key { + /* + "Code": "Success", + "Type": "AWS-HMAC", + "AccessKeyId" : "accessKey", + "SecretAccessKey" : "secret", + "Token" : "token", + "Expiration" : "....", + "LastUpdated" : "2009-11-23T0:00:00Z" + */ + c if c.eq_ignore_ascii_case("Code") => code = Some(value), + c if c.eq_ignore_ascii_case("AccessKeyId") => access_key_id = Some(value), + c if c.eq_ignore_ascii_case("SecretAccessKey") => secret_access_key = Some(value), + c if c.eq_ignore_ascii_case("Token") => session_token = Some(value), + c if c.eq_ignore_ascii_case("Expiration") => expiration = Some(value), + + // Error case handling: message will be set + c if c.eq_ignore_ascii_case("Message") => message = Some(value), + _ => {} + } + })?; + match code { + // IMDS does not appear to reply with a `Code` missing, but documentation indicates it + // may be possible + None | Some(Cow::Borrowed("Success")) => { + let access_key_id = + access_key_id.ok_or(InvalidJsonCredentials::MissingField("AccessKeyId"))?; + let secret_access_key = + secret_access_key.ok_or(InvalidJsonCredentials::MissingField("SecretAccessKey"))?; + let session_token = + session_token.ok_or(InvalidJsonCredentials::MissingField("Token"))?; + let expiration = + expiration.ok_or(InvalidJsonCredentials::MissingField("Expiration"))?; + let expiration = SystemTime::try_from( + DateTime::from_str(expiration.as_ref(), Format::DateTime).map_err(|err| { + InvalidJsonCredentials::InvalidField { + field: "Expiration", + err: err.into(), + } + })?, + ) + .map_err(|_| { + InvalidJsonCredentials::Other( + "credential expiration time cannot be represented by a SystemTime".into(), + ) + })?; + Ok(JsonCredentials::RefreshableCredentials { + access_key_id, + secret_access_key, + session_token, + expiration, + }) + } + Some(other) => Ok(JsonCredentials::Error { + code: other, + message: message.unwrap_or_else(|| "no message".into()), + }), + } +} + +pub(crate) fn json_parse_loop<'a>( + input: &'a [u8], + mut f: impl FnMut(Cow<'a, str>, Cow<'a, str>), +) -> Result<(), InvalidJsonCredentials> { + let mut tokens = json_token_iter(input).peekable(); + if !matches!(tokens.next().transpose()?, Some(Token::StartObject { .. })) { + return Err(InvalidJsonCredentials::JsonError( + "expected a JSON document starting with `{`".into(), + )); + } + loop { + match tokens.next().transpose()? { + Some(Token::EndObject { .. }) => break, + Some(Token::ObjectKey { key, .. }) => { + if let Some(Ok(Token::ValueString { value, .. })) = tokens.peek() { + let key = key.to_unescaped()?; + let value = value.to_unescaped()?; + f(key, value) + } + skip_value(&mut tokens)?; + } + other => { + return Err(InvalidJsonCredentials::Other( + format!("expected object key, found: {:?}", other).into(), + )); + } + } + } + if tokens.next().is_some() { + return Err(InvalidJsonCredentials::Other( + "found more JSON tokens after completing parsing".into(), + )); + } + Ok(()) +} + +#[cfg(test)] +mod test { + use crate::json_credentials::{ + parse_json_credentials, InvalidJsonCredentials, JsonCredentials, + }; + use std::time::{Duration, UNIX_EPOCH}; + + #[test] + fn json_credentials_success_response() { + let response = r#" + { + "Code" : "Success", + "LastUpdated" : "2021-09-17T20:57:08Z", + "Type" : "AWS-HMAC", + "AccessKeyId" : "ASIARTEST", + "SecretAccessKey" : "xjtest", + "Token" : "IQote///test", + "Expiration" : "2021-09-18T03:31:56Z" + }"#; + let parsed = parse_json_credentials(response).expect("valid JSON"); + assert_eq!( + parsed, + JsonCredentials::RefreshableCredentials { + access_key_id: "ASIARTEST".into(), + secret_access_key: "xjtest".into(), + session_token: "IQote///test".into(), + expiration: UNIX_EPOCH + Duration::from_secs(1631935916), + } + ) + } + + #[test] + fn json_credentials_invalid_json() { + let error = parse_json_credentials("404: not found").expect_err("no json"); + match error { + InvalidJsonCredentials::JsonError(_) => {} // ok. + err => panic!("incorrect error: {:?}", err), + } + } + + #[test] + fn json_credentials_not_json_object() { + let error = parse_json_credentials("[1,2,3]").expect_err("no json"); + match error { + InvalidJsonCredentials::JsonError(_) => {} // ok. + _ => panic!("incorrect error"), + } + } + + #[test] + fn json_credentials_missing_code() { + let resp = r#"{ + "LastUpdated" : "2021-09-17T20:57:08Z", + "Type" : "AWS-HMAC", + "AccessKeyId" : "ASIARTEST", + "SecretAccessKey" : "xjtest", + "Token" : "IQote///test", + "Expiration" : "2021-09-18T03:31:56Z" + }"#; + let parsed = parse_json_credentials(resp).expect("code not required"); + assert_eq!( + parsed, + JsonCredentials::RefreshableCredentials { + access_key_id: "ASIARTEST".into(), + secret_access_key: "xjtest".into(), + session_token: "IQote///test".into(), + expiration: UNIX_EPOCH + Duration::from_secs(1631935916), + } + ) + } + + #[test] + fn json_credentials_required_session_token() { + let resp = r#"{ + "LastUpdated" : "2021-09-17T20:57:08Z", + "Type" : "AWS-HMAC", + "AccessKeyId" : "ASIARTEST", + "SecretAccessKey" : "xjtest", + "Expiration" : "2021-09-18T03:31:56Z" + }"#; + let parsed = parse_json_credentials(resp).expect_err("token missing"); + assert_eq!( + format!("{}", parsed), + "Expected field `Token` in response but it was missing" + ); + } + + #[test] + fn json_credentials_missing_akid() { + let resp = r#"{ + "Code": "Success", + "LastUpdated" : "2021-09-17T20:57:08Z", + "Type" : "AWS-HMAC", + "SecretAccessKey" : "xjtest", + "Token" : "IQote///test", + "Expiration" : "2021-09-18T03:31:56Z" + }"#; + match parse_json_credentials(resp).expect_err("no code") { + InvalidJsonCredentials::MissingField("AccessKeyId") => {} // ok + resp => panic!("incorrect json_credentials response: {:?}", resp), + } + } + + #[test] + fn json_credentials_error_response() { + let response = r#"{ + "Code" : "AssumeRoleUnauthorizedAccess", + "Message" : "EC2 cannot assume the role integration-test.", + "LastUpdated" : "2021-09-17T20:46:56Z" + }"#; + let parsed = parse_json_credentials(response).expect("valid JSON"); + assert_eq!( + parsed, + JsonCredentials::Error { + code: "AssumeRoleUnauthorizedAccess".into(), + message: "EC2 cannot assume the role integration-test.".into(), + } + ); + } + + /// Validate the specific JSON response format sent by ECS + #[test] + fn json_credentials_ecs() { + // identical, but extra `RoleArn` field is present + let response = r#"{ + "RoleArn":"arn:aws:iam::123456789:role/ecs-task-role", + "AccessKeyId":"ASIARTEST", + "SecretAccessKey":"SECRETTEST", + "Token":"tokenEaCXVzLXdlc3QtMiJGMEQCIHt47W18eF4dYfSlmKGiwuJnqmIS3LMXNYfODBCEhcnaAiAnuhGOpcdIDxin4QFzhtgaCR2MpcVqR8NFJdMgOt0/xyrnAwhhEAEaDDEzNDA5NTA2NTg1NiIM9M9GT+c5UfV/8r7PKsQDUa9xE9Eprz5N+jgxbFSD2aJR2iyXCcP9Q1cOh4fdZhyw2WNmq9XnIa2tkzrreiQ5R2t+kzergJHO1KRZPfesarfJ879aWJCSocsEKh7xXwwzTsVXrNo5eWkpwTh64q+Ksz15eoaBhtrvnGvPx6SmXv7SToi/DTHFafJlT/T9jITACZvZXSE9zfLka26Rna3rI4g0ugowha//j1f/c1XuKloqshpZvMKc561om9Y5fqBv1fRiS2KhetGTcmz3wUqNQAk8Dq9oINS7cCtdIO0atqCK69UaKeJ9uKY8mzY9dFWw2IrkpOoXmA9r955iU0NOz/95jVJiPZ/8aE8vb0t67gQfzBUCfky+mGSGWAfPRXQlFa5AEulCTHPd7IcTVCtasG033oKEKgB8QnTxvM2LaPlwaaHo7MHGYXeUKbn9NRKd8m1ShwmAlr4oKp1vQp6cPHDTsdTfPTzh/ZAjUPs+ljQbAwqXbPQdUUPpOk0vltY8k6Im9EA0pf80iUNoqrixpmPsR2hzI/ybUwdh+QhvCSBx+J8KHqF6X92u4qAVYIxLy/LGZKT9YC6Kr9Gywn+Ro+EK/xl3axHPzNpbjRDJnbW3HrMw5LmmiwY6pgGWgmD6IOq4QYUtu1uhaLQZyoI5o5PWn+d3kqqxifu8D0ykldB3lQGdlJ2rjKJjCdx8fce1SoXao9cc4hiwn39hUPuTqzVwv2zbzCKmNggIpXP6gqyRtUCakf6tI7ZwqTb2S8KF3t4ElIP8i4cPdNoI0JHSC+sT4LDPpUcX1CjGxfvo55mBHJedW3LXve8TRj4UckFXT1gLuTnzqPMrC5AHz4TAt+uv", + "Expiration" : "2009-02-13T23:31:30Z" + }"#; + let parsed = parse_json_credentials(response).expect("valid JSON"); + use std::borrow::Cow; + assert!( + matches!( + &parsed, + JsonCredentials::RefreshableCredentials { + access_key_id: Cow::Borrowed("ASIARTEST"), + secret_access_key: Cow::Borrowed("SECRETTEST"), + session_token, + expiration + } if session_token.starts_with("token") && *expiration == UNIX_EPOCH + Duration::from_secs(1234567890) + ), + "{:?}", + parsed + ); + } + + #[test] + fn case_insensitive_code_parsing() { + let response = r#"{ + "code" : "AssumeRoleUnauthorizedAccess", + "message" : "EC2 cannot assume the role integration-test." + }"#; + let parsed = parse_json_credentials(response).expect("valid JSON"); + assert_eq!( + parsed, + JsonCredentials::Error { + code: "AssumeRoleUnauthorizedAccess".into(), + message: "EC2 cannot assume the role integration-test.".into(), + } + ); + } +} diff --git a/patch/aws-config/src/lib.rs b/patch/aws-config/src/lib.rs new file mode 100644 index 0000000000000..bdf407605c62a --- /dev/null +++ b/patch/aws-config/src/lib.rs @@ -0,0 +1,406 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ +#![warn(missing_docs)] + +//! `aws-config` provides implementations of region, credential resolution. +//! +//! These implementations can be used either via the default chain implementation +//! [`from_env`]/[`ConfigLoader`] or ad-hoc individual credential and region providers. +//! +//! [`ConfigLoader`](ConfigLoader) can combine different configuration sources into an AWS shared-config: +//! [`SdkConfig`](aws_types::SdkConfig). [`SdkConfig`](aws_types::SdkConfig) can be used configure +//! an AWS service client. +//! +//! # Examples +//! +//! Load default SDK configuration: +//! ```no_run +//! # mod aws_sdk_dynamodb { +//! # pub struct Client; +//! # impl Client { +//! # pub fn new(config: &aws_types::SdkConfig) -> Self { Client } +//! # } +//! # } +//! # async fn docs() { +//! let config = aws_config::load_from_env().await; +//! let client = aws_sdk_dynamodb::Client::new(&config); +//! # } +//! ``` +//! +//! Load SDK configuration with a region override: +//! ```no_run +//! # mod aws_sdk_dynamodb { +//! # pub struct Client; +//! # impl Client { +//! # pub fn new(config: &aws_types::SdkConfig) -> Self { Client } +//! # } +//! # } +//! # async fn docs() { +//! # use aws_config::meta::region::RegionProviderChain; +//! let region_provider = RegionProviderChain::default_provider().or_else("us-east-1"); +//! let config = aws_config::from_env().region(region_provider).load().await; +//! let client = aws_sdk_dynamodb::Client::new(&config); +//! # } +//! ``` + +#[allow(dead_code)] +const PKG_VERSION: &str = env!("CARGO_PKG_VERSION"); + +/// Providers that implement the default AWS provider chain +pub mod default_provider; + +/// Providers that load configuration from environment variables +pub mod environment; + +/// Meta-providers that augment existing providers with new behavior +pub mod meta; + +pub mod profile; + +pub mod sts; + +#[cfg(test)] +mod test_case; + +pub mod web_identity_token; + +pub mod ecs; + +pub mod provider_config; + +mod cache; + +pub mod imds; + +mod json_credentials; + +mod fs_util; + +mod http_credential_provider; + +pub mod sso; + +pub mod connector; + +pub(crate) mod parsing; + +// Re-export types from smithy-types +pub use aws_smithy_types::retry::RetryConfig; +pub use aws_smithy_types::timeout; + +// Re-export types from aws-types +pub use aws_types::app_name::{AppName, InvalidAppName}; + +/// Create an environment loader for AWS Configuration +/// +/// # Examples +/// ```no_run +/// # async fn create_config() { +/// use aws_types::region::Region; +/// let config = aws_config::from_env().region("us-east-1").load().await; +/// # } +/// ``` +pub fn from_env() -> ConfigLoader { + ConfigLoader::default() +} + +/// Load a default configuration from the environment +/// +/// Convenience wrapper equivalent to `aws_config::from_env().load().await` +pub async fn load_from_env() -> aws_types::SdkConfig { + from_env().load().await +} + +/// Load default sources for all configuration with override support +pub use loader::ConfigLoader; + +mod loader { + use std::sync::Arc; + + use crate::connector::default_connector; + use aws_smithy_async::rt::sleep::{default_async_sleep, AsyncSleep}; + use aws_smithy_client::http_connector::{HttpConnector, HttpSettings}; + use aws_smithy_types::retry::RetryConfig; + use aws_smithy_types::timeout; + use aws_types::app_name::AppName; + use aws_types::credentials::{ProvideCredentials, SharedCredentialsProvider}; + use aws_types::SdkConfig; + + use crate::default_provider::{app_name, credentials, region, retry_config, timeout_config}; + use crate::meta::region::ProvideRegion; + use crate::provider_config::ProviderConfig; + + /// Load a cross-service [`SdkConfig`](aws_types::SdkConfig) from the environment + /// + /// This builder supports overriding individual components of the generated config. Overriding a component + /// will skip the standard resolution chain from **for that component**. For example, + /// if you override the region provider, _even if that provider returns None_, the default region provider + /// chain will not be used. + #[derive(Default, Debug)] + pub struct ConfigLoader { + app_name: Option, + credentials_provider: Option, + region: Option>, + retry_config: Option, + sleep: Option>, + timeout_config: Option, + provider_config: Option, + http_connector: Option, + } + + impl ConfigLoader { + /// Override the region used to build [`SdkConfig`](aws_types::SdkConfig). + /// + /// # Examples + /// ```no_run + /// # async fn create_config() { + /// use aws_types::region::Region; + /// let config = aws_config::from_env() + /// .region(Region::new("us-east-1")) + /// .load().await; + /// # } + /// ``` + pub fn region(mut self, region: impl ProvideRegion + 'static) -> Self { + self.region = Some(Box::new(region)); + self + } + + /// Override the retry_config used to build [`SdkConfig`](aws_types::SdkConfig). + /// + /// # Examples + /// ```no_run + /// # use aws_smithy_types::retry::RetryConfig; + /// # async fn create_config() { + /// let config = aws_config::from_env() + /// .retry_config(RetryConfig::new().with_max_attempts(2)) + /// .load().await; + /// # } + /// ``` + pub fn retry_config(mut self, retry_config: RetryConfig) -> Self { + self.retry_config = Some(retry_config); + self + } + + /// Override the timeout config used to build [`SdkConfig`](aws_types::SdkConfig). + /// **Note: This only sets timeouts for calls to AWS services.** Timeouts for the credentials + /// provider chain are configured separately. + /// + /// # Examples + /// ```no_run + /// # use std::time::Duration; + /// # async fn create_config() { + /// use aws_smithy_types::{timeout, tristate::TriState}; + /// + /// let api_timeout_config = timeout::Api::new() + /// .with_call_timeout(TriState::Set(Duration::from_secs(1))); + /// let timeout_config = timeout::Config::new().with_api_timeouts(api_timeout_config); + /// let config = aws_config::from_env() + /// .timeout_config(timeout_config) + /// .load() + /// .await; + /// # } + /// ``` + pub fn timeout_config(mut self, timeout_config: timeout::Config) -> Self { + self.timeout_config = Some(timeout_config); + self + } + + /// Override the sleep implementation for this [`ConfigLoader`]. The sleep implementation + /// is used to create timeout futures. + pub fn sleep_impl(mut self, sleep: impl AsyncSleep + 'static) -> Self { + // it's possible that we could wrapping an `Arc in an `Arc` and that's OK + self.sleep = Some(Arc::new(sleep)); + self + } + + /// Override the [`HttpConnector`] used to build [`SdkConfig`](aws_types::SdkConfig). + pub fn http_connector(mut self, http_connector: HttpConnector) -> Self { + self.http_connector = Some(http_connector); + self + } + + /// Override the credentials provider used to build [`SdkConfig`](aws_types::SdkConfig). + /// + /// # Examples + /// + /// Override the credentials provider but load the default value for region: + /// ```no_run + /// # use aws_types::Credentials; + /// # fn create_my_credential_provider() -> Credentials { + /// # Credentials::new("example", "example", None, None, "example") + /// # } + /// # async fn create_config() { + /// let config = aws_config::from_env() + /// .credentials_provider(create_my_credential_provider()) + /// .load() + /// .await; + /// # } + /// ``` + pub fn credentials_provider( + mut self, + credentials_provider: impl ProvideCredentials + 'static, + ) -> Self { + self.credentials_provider = Some(SharedCredentialsProvider::new(credentials_provider)); + self + } + + /// Set configuration for all sub-loaders (credentials, region etc.) + /// + /// Update the `ProviderConfig` used for all nested loaders. This can be used to override + /// the HTTPs connector used or to stub in an in memory `Env` or `Fs` for testing. + /// + /// # Examples + /// ```no_run + /// # async fn docs() { + /// use aws_config::provider_config::ProviderConfig; + /// let custom_https_connector = hyper_rustls::HttpsConnectorBuilder::new(). + /// with_webpki_roots() + /// .https_only() + /// .enable_http1() + /// .build(); + /// let provider_config = ProviderConfig::default().with_tcp_connector(custom_https_connector); + /// let shared_config = aws_config::from_env().configure(provider_config).load().await; + /// # } + /// ``` + pub fn configure(mut self, provider_config: ProviderConfig) -> Self { + self.provider_config = Some(provider_config); + self + } + + /// Load the default configuration chain + /// + /// If fields have been overridden during builder construction, the override values will be used. + /// + /// Otherwise, the default values for each field will be provided. + /// + /// NOTE: When an override is provided, the default implementation is **not** used as a fallback. + /// This means that if you provide a region provider that does not return a region, no region will + /// be set in the resulting [`SdkConfig`](aws_types::SdkConfig) + pub async fn load(self) -> SdkConfig { + let conf = self.provider_config.unwrap_or_default(); + let region = if let Some(provider) = self.region { + provider.region().await + } else { + region::Builder::default() + .configure(&conf) + .build() + .region() + .await + }; + + let retry_config = if let Some(retry_config) = self.retry_config { + retry_config + } else { + retry_config::default_provider() + .configure(&conf) + .retry_config() + .await + }; + + let app_name = if self.app_name.is_some() { + self.app_name + } else { + app_name::default_provider() + .configure(&conf) + .app_name() + .await + }; + + let sleep_impl = if self.sleep.is_none() { + if default_async_sleep().is_none() { + tracing::warn!( + "An implementation of AsyncSleep was requested by calling default_async_sleep \ + but no default was set. + This happened when ConfigLoader::load was called during Config construction. \ + You can fix this by setting a sleep_impl on the ConfigLoader before calling \ + load or by enabling the rt-tokio feature" + ); + } + default_async_sleep() + } else { + self.sleep + }; + + let http_connector = if let Some(http_connector) = self.http_connector { + http_connector + } else { + let timeouts = self.timeout_config.clone().unwrap_or_default(); + let settings = HttpSettings::default() + .with_http_timeout_config(timeouts.http_timeouts()) + .with_tcp_timeout_config(timeouts.tcp_timeouts()); + let sleep_impl = sleep_impl.clone(); + HttpConnector::Prebuilt(default_connector(&settings, sleep_impl)) + }; + + let timeout_config = if let Some(timeout_config) = self.timeout_config { + timeout_config + } else { + timeout_config::default_provider() + .configure(&conf) + .timeout_config() + .await + }; + + let credentials_provider = if let Some(provider) = self.credentials_provider { + provider + } else { + let mut builder = credentials::DefaultCredentialsChain::builder().configure(conf); + builder.set_region(region.clone()); + SharedCredentialsProvider::new(builder.build().await) + }; + + let mut builder = SdkConfig::builder() + .region(region) + .retry_config(retry_config) + .timeout_config(timeout_config) + .credentials_provider(credentials_provider) + .http_connector(http_connector); + + builder.set_app_name(app_name); + builder.set_sleep_impl(sleep_impl); + builder.build() + } + } + + #[cfg(test)] + mod test { + use crate::from_env; + use crate::provider_config::ProviderConfig; + use aws_smithy_client::erase::DynConnector; + use aws_smithy_client::never::NeverConnector; + use aws_types::credentials::ProvideCredentials; + use aws_types::os_shim_internal::Env; + + #[tokio::test] + async fn provider_config_used() { + let env = Env::from_slice(&[ + ("AWS_MAX_ATTEMPTS", "10"), + ("AWS_REGION", "us-west-4"), + ("AWS_ACCESS_KEY_ID", "akid"), + ("AWS_SECRET_ACCESS_KEY", "secret"), + ]); + let loader = from_env() + .configure( + ProviderConfig::empty() + .with_env(env) + .with_http_connector(DynConnector::new(NeverConnector::new())), + ) + .load() + .await; + assert_eq!(loader.retry_config().unwrap().max_attempts(), 10); + assert_eq!(loader.region().unwrap().as_ref(), "us-west-4"); + assert_eq!( + loader + .credentials_provider() + .unwrap() + .provide_credentials() + .await + .unwrap() + .access_key_id(), + "akid" + ); + } + } +} diff --git a/patch/aws-config/src/meta/credentials/chain.rs b/patch/aws-config/src/meta/credentials/chain.rs new file mode 100644 index 0000000000000..57cba8bd35ce7 --- /dev/null +++ b/patch/aws-config/src/meta/credentials/chain.rs @@ -0,0 +1,107 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::borrow::Cow; + +use aws_types::credentials::{self, future, CredentialsError, ProvideCredentials}; +use tracing::Instrument; + +/// Credentials provider that checks a series of inner providers +/// +/// Each provider will be evaluated in order: +/// * If a provider returns valid [`Credentials`](aws_types::Credentials) they will be returned immediately. +/// No other credential providers will be used. +/// * Otherwise, if a provider returns +/// [`CredentialsError::CredentialsNotLoaded`](aws_types::credentials::CredentialsError::CredentialsNotLoaded), +/// the next provider will be checked. +/// * Finally, if a provider returns any other error condition, an error will be returned immediately. +/// +/// # Examples +/// +/// ```no_run +/// # fn example() { +/// use aws_config::meta::credentials::CredentialsProviderChain; +/// use aws_config::environment::credentials::EnvironmentVariableCredentialsProvider; +/// use aws_config::profile::ProfileFileCredentialsProvider; +/// +/// let provider = CredentialsProviderChain::first_try("Environment", EnvironmentVariableCredentialsProvider::new()) +/// .or_else("Profile", ProfileFileCredentialsProvider::builder().build()); +/// # } +/// ``` +#[derive(Debug)] +pub struct CredentialsProviderChain { + providers: Vec<(Cow<'static, str>, Box)>, +} + +impl CredentialsProviderChain { + /// Create a `CredentialsProviderChain` that begins by evaluating this provider + pub fn first_try( + name: impl Into>, + provider: impl ProvideCredentials + 'static, + ) -> Self { + CredentialsProviderChain { + providers: vec![(name.into(), Box::new(provider))], + } + } + + /// Add a fallback provider to the credentials provider chain + pub fn or_else( + mut self, + name: impl Into>, + provider: impl ProvideCredentials + 'static, + ) -> Self { + self.providers.push((name.into(), Box::new(provider))); + self + } + + /// Add a fallback to the default provider chain + #[cfg(any(feature = "rustls", feature = "native-tls"))] + pub async fn or_default_provider(self) -> Self { + self.or_else( + "DefaultProviderChain", + crate::default_provider::credentials::default_provider().await, + ) + } + + /// Creates a credential provider chain that starts with the default provider + #[cfg(any(feature = "rustls", feature = "native-tls"))] + pub async fn default_provider() -> Self { + Self::first_try( + "DefaultProviderChain", + crate::default_provider::credentials::default_provider().await, + ) + } + + async fn credentials(&self) -> credentials::Result { + for (name, provider) in &self.providers { + let span = tracing::debug_span!("load_credentials", provider = %name); + match provider.provide_credentials().instrument(span).await { + Ok(credentials) => { + tracing::info!(provider = %name, "loaded credentials"); + return Ok(credentials); + } + Err(CredentialsError::CredentialsNotLoaded { context, .. }) => { + tracing::info!(provider = %name, context = %context, "provider in chain did not provide credentials"); + } + Err(e) => { + tracing::warn!(provider = %name, error = %e, "provider failed to provide credentials"); + return Err(e); + } + } + } + Err(CredentialsError::not_loaded( + "no providers in chain provided credentials", + )) + } +} + +impl ProvideCredentials for CredentialsProviderChain { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials + where + Self: 'a, + { + future::ProvideCredentials::new(self.credentials()) + } +} diff --git a/patch/aws-config/src/meta/credentials/credential_fn.rs b/patch/aws-config/src/meta/credentials/credential_fn.rs new file mode 100644 index 0000000000000..bdc059c5b3465 --- /dev/null +++ b/patch/aws-config/src/meta/credentials/credential_fn.rs @@ -0,0 +1,141 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_types::credentials; +use aws_types::credentials::ProvideCredentials; +use std::fmt::{self, Debug, Formatter}; +use std::future::Future; +use std::marker::PhantomData; + +/// A [`ProvideCredentials`] implemented by a closure. +/// +/// See [`provide_credentials_fn`] for more details. +#[derive(Copy, Clone)] +pub struct ProvideCredentialsFn<'c, T> { + f: T, + phantom: PhantomData<&'c T>, +} + +impl Debug for ProvideCredentialsFn<'_, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + write!(f, "ProvideCredentialsFn") + } +} + +impl<'c, T, F> ProvideCredentials for ProvideCredentialsFn<'c, T> +where + T: Fn() -> F + Send + Sync + 'c, + F: Future + Send + 'static, +{ + fn provide_credentials<'a>(&'a self) -> credentials::future::ProvideCredentials<'a> + where + Self: 'a, + { + credentials::future::ProvideCredentials::new((self.f)()) + } +} + +/// Returns a new credentials provider built with the given closure. This allows you +/// to create an [`ProvideCredentials`] implementation from an async block that returns +/// a [`credentials::Result`]. +/// +/// # Examples +/// +/// ```no_run +/// use aws_types::Credentials; +/// use aws_config::meta::credentials::provide_credentials_fn; +/// +/// async fn load_credentials() -> Credentials { +/// todo!() +/// } +/// +/// provide_credentials_fn(|| async { +/// // Async process to retrieve credentials goes here +/// let credentials = load_credentials().await; +/// Ok(credentials) +/// }); +/// ``` +pub fn provide_credentials_fn<'c, T, F>(f: T) -> ProvideCredentialsFn<'c, T> +where + T: Fn() -> F + Send + Sync + 'c, + F: Future + Send + 'static, +{ + ProvideCredentialsFn { + f, + phantom: Default::default(), + } +} + +#[cfg(test)] +mod test { + use crate::meta::credentials::credential_fn::provide_credentials_fn; + use async_trait::async_trait; + use aws_types::credentials::ProvideCredentials; + use aws_types::{credentials, Credentials}; + use std::fmt::{Debug, Formatter}; + + fn assert_send_sync() {} + + #[test] + fn creds_are_send_sync() { + assert_send_sync::() + } + + #[async_trait] + trait AnotherTrait: Send + Sync { + async fn creds(&self) -> Credentials; + } + + struct AnotherTraitWrapper { + inner: T, + } + + impl Debug for AnotherTraitWrapper { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "wrapper") + } + } + + impl ProvideCredentials for AnotherTraitWrapper { + fn provide_credentials<'a>(&'a self) -> credentials::future::ProvideCredentials<'a> + where + Self: 'a, + { + credentials::future::ProvideCredentials::new( + async move { Ok(self.inner.creds().await) }, + ) + } + } + + // Test that the closure passed to `provide_credentials_fn` is allowed to borrow things + #[tokio::test] + async fn provide_credentials_fn_closure_can_borrow() { + fn check_is_str_ref(_input: &str) {} + async fn test_async_provider(input: String) -> credentials::Result { + Ok(Credentials::new(&input, &input, None, None, "test")) + } + + let things_to_borrow = vec!["one".to_string(), "two".to_string()]; + + let mut providers = Vec::new(); + for thing in &things_to_borrow { + let provider = provide_credentials_fn(move || { + check_is_str_ref(thing); + test_async_provider(thing.into()) + }); + providers.push(provider); + } + + let (two, one) = (providers.pop().unwrap(), providers.pop().unwrap()); + assert_eq!( + "one", + one.provide_credentials().await.unwrap().access_key_id() + ); + assert_eq!( + "two", + two.provide_credentials().await.unwrap().access_key_id() + ); + } +} diff --git a/patch/aws-config/src/meta/credentials/lazy_caching.rs b/patch/aws-config/src/meta/credentials/lazy_caching.rs new file mode 100644 index 0000000000000..0154a2492b3ba --- /dev/null +++ b/patch/aws-config/src/meta/credentials/lazy_caching.rs @@ -0,0 +1,488 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Lazy, caching, credentials provider implementation + +use std::sync::Arc; +use std::time::Duration; + +use aws_smithy_async::future::timeout::Timeout; +use aws_smithy_async::rt::sleep::AsyncSleep; +use tracing::{trace_span, Instrument}; + +use aws_types::credentials::{future, CredentialsError, ProvideCredentials}; +use aws_types::os_shim_internal::TimeSource; + +use crate::cache::ExpiringCache; + +const DEFAULT_LOAD_TIMEOUT: Duration = Duration::from_secs(5); +const DEFAULT_CREDENTIAL_EXPIRATION: Duration = Duration::from_secs(15 * 60); +const DEFAULT_BUFFER_TIME: Duration = Duration::from_secs(10); + +/// `LazyCachingCredentialsProvider` implements [`ProvideCredentials`] by caching +/// credentials that it loads by calling a user-provided [`ProvideCredentials`] implementation. +/// +/// For example, you can provide an [`ProvideCredentials`] implementation that calls +/// AWS STS's AssumeRole operation to get temporary credentials, and `LazyCachingCredentialsProvider` +/// will cache those credentials until they expire. +#[derive(Debug)] +pub struct LazyCachingCredentialsProvider { + time: TimeSource, + sleeper: Arc, + cache: ExpiringCache, + loader: Arc, + load_timeout: Duration, + default_credential_expiration: Duration, +} + +impl LazyCachingCredentialsProvider { + fn new( + time: TimeSource, + sleeper: Arc, + loader: Arc, + load_timeout: Duration, + default_credential_expiration: Duration, + buffer_time: Duration, + ) -> Self { + LazyCachingCredentialsProvider { + time, + sleeper, + cache: ExpiringCache::new(buffer_time), + loader, + load_timeout, + default_credential_expiration, + } + } + + /// Returns a new `Builder` that can be used to construct the `LazyCachingCredentialsProvider`. + pub fn builder() -> builder::Builder { + builder::Builder::new() + } +} + +impl ProvideCredentials for LazyCachingCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials + where + Self: 'a, + { + let now = self.time.now(); + let loader = self.loader.clone(); + let timeout_future = self.sleeper.sleep(self.load_timeout); + let load_timeout = self.load_timeout; + let cache = self.cache.clone(); + let default_credential_expiration = self.default_credential_expiration; + + future::ProvideCredentials::new(async move { + // Attempt to get cached credentials, or clear the cache if they're expired + if let Some(credentials) = cache.yield_or_clear_if_expired(now).await { + tracing::debug!("loaded credentials from cache"); + Ok(credentials) + } else { + // If we didn't get credentials from the cache, then we need to try and load. + // There may be other threads also loading simultaneously, but this is OK + // since the futures are not eagerly executed, and the cache will only run one + // of them. + let span = trace_span!("lazy_load_credentials"); + let future = Timeout::new(loader.provide_credentials(), timeout_future); + cache + .get_or_load(|| { + async move { + let credentials = future.await.map_err(|_err| { + CredentialsError::provider_timed_out(load_timeout) + })??; + // If the credentials don't have an expiration time, then create a default one + let expiry = credentials + .expiry() + .unwrap_or(now + default_credential_expiration); + Ok((credentials, expiry)) + } + // Only instrument the the actual load future so that no span + // is opened if the cache decides not to execute it. + .instrument(span) + }) + .await + } + }) + } +} + +use aws_types::Credentials; +pub use builder::Builder; + +mod builder { + use std::sync::Arc; + use std::time::Duration; + + use aws_smithy_async::rt::sleep::{default_async_sleep, AsyncSleep}; + use aws_types::credentials::ProvideCredentials; + + use super::{ + LazyCachingCredentialsProvider, DEFAULT_BUFFER_TIME, DEFAULT_CREDENTIAL_EXPIRATION, + DEFAULT_LOAD_TIMEOUT, + }; + use crate::provider_config::ProviderConfig; + use aws_types::os_shim_internal::TimeSource; + + /// Builder for constructing a [`LazyCachingCredentialsProvider`]. + /// + /// # Examples + /// + /// ```no_run + /// use aws_types::Credentials; + /// use aws_config::meta::credentials::provide_credentials_fn; + /// use aws_config::meta::credentials::LazyCachingCredentialsProvider; + /// + /// let provider = LazyCachingCredentialsProvider::builder() + /// .load(provide_credentials_fn(|| async { + /// // An async process to retrieve credentials would go here: + /// Ok(Credentials::new("example", "example", None, None, "my_provider_name")) + /// })) + /// .build(); + /// ``` + #[derive(Default)] + pub struct Builder { + sleep: Option>, + time_source: Option, + load: Option>, + load_timeout: Option, + buffer_time: Option, + default_credential_expiration: Option, + } + + impl Builder { + /// Creates a new builder + pub fn new() -> Self { + Default::default() + } + + /// Override configuration for the [Builder] + pub fn configure(mut self, config: &ProviderConfig) -> Self { + self.sleep = config.sleep(); + self.time_source = Some(config.time_source()); + self + } + + /// An implementation of [`ProvideCredentials`] that will be used to load + /// the cached credentials once they're expired. + pub fn load(mut self, loader: impl ProvideCredentials + 'static) -> Self { + self.set_load(Some(loader)); + self + } + + /// An implementation of [`ProvideCredentials`] that will be used to load + /// the cached credentials once they're expired. + pub fn set_load(&mut self, loader: Option) -> &mut Self { + self.load = loader.map(|l| Arc::new(l) as Arc); + self + } + + /// Implementation of [`AsyncSleep`] to use for timeouts. + /// + /// This enables use of the `LazyCachingCredentialsProvider` with other async runtimes. + /// If using Tokio as the async runtime, this should be set to an instance of + /// [`TokioSleep`](aws_smithy_async::rt::sleep::TokioSleep). + pub fn sleep(mut self, sleep: impl AsyncSleep + 'static) -> Self { + self.set_sleep(Some(sleep)); + self + } + + /// Implementation of [`AsyncSleep`] to use for timeouts. + /// + /// This enables use of the `LazyCachingCredentialsProvider` with other async runtimes. + /// If using Tokio as the async runtime, this should be set to an instance of + /// [`TokioSleep`](aws_smithy_async::rt::sleep::TokioSleep). + pub fn set_sleep(&mut self, sleep: Option) -> &mut Self { + self.sleep = sleep.map(|s| Arc::new(s) as Arc); + self + } + + /// Timeout for the given [`ProvideCredentials`] implementation. + /// + /// Defaults to 5 seconds. + pub fn load_timeout(mut self, timeout: Duration) -> Self { + self.set_load_timeout(Some(timeout)); + self + } + + /// Timeout for the given [`ProvideCredentials`] implementation. + /// + /// Defaults to 5 seconds. + pub fn set_load_timeout(&mut self, timeout: Option) -> &mut Self { + self.load_timeout = timeout; + self + } + + /// Amount of time before the actual credential expiration time + /// where credentials are considered expired. + /// + /// For example, if credentials are expiring in 15 minutes, and the buffer time is 10 seconds, + /// then any requests made after 14 minutes and 50 seconds will load new credentials. + /// + /// Defaults to 10 seconds. + pub fn buffer_time(mut self, buffer_time: Duration) -> Self { + self.set_buffer_time(Some(buffer_time)); + self + } + + /// Amount of time before the actual credential expiration time + /// where credentials are considered expired. + /// + /// For example, if credentials are expiring in 15 minutes, and the buffer time is 10 seconds, + /// then any requests made after 14 minutes and 50 seconds will load new credentials. + /// + /// Defaults to 10 seconds. + pub fn set_buffer_time(&mut self, buffer_time: Option) -> &mut Self { + self.buffer_time = buffer_time; + self + } + + /// Default expiration time to set on credentials if they don't have an expiration time. + /// + /// This is only used if the given [`ProvideCredentials`] returns + /// [`Credentials`](aws_types::Credentials) that don't have their `expiry` set. + /// This must be at least 15 minutes. + /// + /// Defaults to 15 minutes. + pub fn default_credential_expiration(mut self, duration: Duration) -> Self { + self.set_default_credential_expiration(Some(duration)); + self + } + + /// Default expiration time to set on credentials if they don't have an expiration time. + /// + /// This is only used if the given [`ProvideCredentials`] returns + /// [`Credentials`](aws_types::Credentials) that don't have their `expiry` set. + /// This must be at least 15 minutes. + /// + /// Defaults to 15 minutes. + pub fn set_default_credential_expiration( + &mut self, + duration: Option, + ) -> &mut Self { + self.default_credential_expiration = duration; + self + } + + /// Creates the [`LazyCachingCredentialsProvider`]. + /// + /// # Panics + /// This will panic if no `sleep` implementation is given and if no default crate features + /// are used. By default, the [`TokioSleep`](aws_smithy_async::rt::sleep::TokioSleep) + /// implementation will be set automatically. + pub fn build(self) -> LazyCachingCredentialsProvider { + let default_credential_expiration = self + .default_credential_expiration + .unwrap_or(DEFAULT_CREDENTIAL_EXPIRATION); + assert!( + default_credential_expiration >= DEFAULT_CREDENTIAL_EXPIRATION, + "default_credential_expiration must be at least 15 minutes" + ); + LazyCachingCredentialsProvider::new( + self.time_source.unwrap_or_default(), + self.sleep.unwrap_or_else(|| { + default_async_sleep().expect("no default sleep implementation available") + }), + self.load.expect("load implementation is required"), + self.load_timeout.unwrap_or(DEFAULT_LOAD_TIMEOUT), + default_credential_expiration, + self.buffer_time.unwrap_or(DEFAULT_BUFFER_TIME), + ) + } + } +} + +#[cfg(test)] +mod tests { + use std::sync::{Arc, Mutex}; + use std::time::{Duration, SystemTime, UNIX_EPOCH}; + + use aws_smithy_async::rt::sleep::TokioSleep; + use aws_types::credentials::{self, CredentialsError, ProvideCredentials}; + use aws_types::Credentials; + use tracing::info; + use tracing_test::traced_test; + + use crate::meta::credentials::credential_fn::provide_credentials_fn; + + use super::{ + LazyCachingCredentialsProvider, TimeSource, DEFAULT_BUFFER_TIME, + DEFAULT_CREDENTIAL_EXPIRATION, DEFAULT_LOAD_TIMEOUT, + }; + use aws_types::os_shim_internal::ManualTimeSource; + + fn test_provider( + time: TimeSource, + load_list: Vec, + ) -> LazyCachingCredentialsProvider { + let load_list = Arc::new(Mutex::new(load_list)); + LazyCachingCredentialsProvider::new( + time, + Arc::new(TokioSleep::new()), + Arc::new(provide_credentials_fn(move || { + let list = load_list.clone(); + async move { + let next = list.lock().unwrap().remove(0); + info!("refreshing the credentials to {:?}", next); + next + } + })), + DEFAULT_LOAD_TIMEOUT, + DEFAULT_CREDENTIAL_EXPIRATION, + DEFAULT_BUFFER_TIME, + ) + } + + fn epoch_secs(secs: u64) -> SystemTime { + SystemTime::UNIX_EPOCH + Duration::from_secs(secs) + } + + fn credentials(expired_secs: u64) -> Credentials { + Credentials::new("test", "test", None, Some(epoch_secs(expired_secs)), "test") + } + + async fn expect_creds(expired_secs: u64, provider: &LazyCachingCredentialsProvider) { + let creds = provider + .provide_credentials() + .await + .expect("expected credentials"); + assert_eq!(Some(epoch_secs(expired_secs)), creds.expiry()); + } + + #[traced_test] + #[tokio::test] + async fn initial_populate_credentials() { + let time = ManualTimeSource::new(UNIX_EPOCH); + let loader = Arc::new(provide_credentials_fn(|| async { + info!("refreshing the credentials"); + Ok(credentials(1000)) + })); + let provider = LazyCachingCredentialsProvider::new( + TimeSource::manual(&time), + Arc::new(TokioSleep::new()), + loader, + DEFAULT_LOAD_TIMEOUT, + DEFAULT_CREDENTIAL_EXPIRATION, + DEFAULT_BUFFER_TIME, + ); + assert_eq!( + epoch_secs(1000), + provider + .provide_credentials() + .await + .unwrap() + .expiry() + .unwrap() + ); + } + + #[traced_test] + #[tokio::test] + async fn reload_expired_credentials() { + let mut time = ManualTimeSource::new(epoch_secs(100)); + let provider = test_provider( + TimeSource::manual(&time), + vec![ + Ok(credentials(1000)), + Ok(credentials(2000)), + Ok(credentials(3000)), + ], + ); + + expect_creds(1000, &provider).await; + expect_creds(1000, &provider).await; + time.set_time(epoch_secs(1500)); + expect_creds(2000, &provider).await; + expect_creds(2000, &provider).await; + time.set_time(epoch_secs(2500)); + expect_creds(3000, &provider).await; + expect_creds(3000, &provider).await; + } + + #[traced_test] + #[tokio::test] + async fn load_failed_error() { + let mut time = ManualTimeSource::new(epoch_secs(100)); + let provider = test_provider( + TimeSource::manual(&time), + vec![ + Ok(credentials(1000)), + Err(CredentialsError::not_loaded("failed")), + ], + ); + + expect_creds(1000, &provider).await; + time.set_time(epoch_secs(1500)); + assert!(provider.provide_credentials().await.is_err()); + } + + #[traced_test] + #[test] + fn load_contention() { + let rt = tokio::runtime::Builder::new_multi_thread() + .enable_time() + .worker_threads(16) + .build() + .unwrap(); + + let time = ManualTimeSource::new(epoch_secs(0)); + let provider = Arc::new(test_provider( + TimeSource::manual(&time), + vec![ + Ok(credentials(500)), + Ok(credentials(1500)), + Ok(credentials(2500)), + Ok(credentials(3500)), + Ok(credentials(4500)), + ], + )); + + let locked_time = Arc::new(Mutex::new(time)); + + for i in 0..4 { + let mut tasks = Vec::new(); + for j in 0..50 { + let provider = provider.clone(); + let time = locked_time.clone(); + tasks.push(rt.spawn(async move { + let now = epoch_secs(i * 1000 + (4 * j)); + time.lock().unwrap().set_time(now); + + let creds = provider.provide_credentials().await.unwrap(); + assert!( + creds.expiry().unwrap() >= now, + "{:?} >= {:?}", + creds.expiry(), + now + ); + })); + } + for task in tasks { + rt.block_on(task).unwrap(); + } + } + } + + #[tokio::test] + #[traced_test] + async fn load_timeout() { + let time = ManualTimeSource::new(epoch_secs(100)); + let provider = LazyCachingCredentialsProvider::new( + TimeSource::manual(&time), + Arc::new(TokioSleep::new()), + Arc::new(provide_credentials_fn(|| async { + aws_smithy_async::future::never::Never::new().await; + Ok(credentials(1000)) + })), + Duration::from_millis(5), + DEFAULT_CREDENTIAL_EXPIRATION, + DEFAULT_BUFFER_TIME, + ); + + assert!(matches!( + provider.provide_credentials().await, + Err(CredentialsError::ProviderTimedOut { .. }) + )); + } +} diff --git a/patch/aws-config/src/meta/credentials/mod.rs b/patch/aws-config/src/meta/credentials/mod.rs new file mode 100644 index 0000000000000..8f5e504e48e81 --- /dev/null +++ b/patch/aws-config/src/meta/credentials/mod.rs @@ -0,0 +1,15 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Credential providers that augment an existing credentials providers to add functionality + +mod chain; +pub use chain::CredentialsProviderChain; + +mod credential_fn; +pub use credential_fn::provide_credentials_fn; + +pub mod lazy_caching; +pub use lazy_caching::LazyCachingCredentialsProvider; diff --git a/patch/aws-config/src/meta/mod.rs b/patch/aws-config/src/meta/mod.rs new file mode 100644 index 0000000000000..202443b32dec2 --- /dev/null +++ b/patch/aws-config/src/meta/mod.rs @@ -0,0 +1,8 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +pub mod region; + +pub mod credentials; diff --git a/patch/aws-config/src/meta/region.rs b/patch/aws-config/src/meta/region.rs new file mode 100644 index 0000000000000..5e80b55222e45 --- /dev/null +++ b/patch/aws-config/src/meta/region.rs @@ -0,0 +1,184 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Region providers that augment existing providers with new functionality + +use aws_types::region::Region; +use std::borrow::Cow; +use std::fmt::Debug; +use tracing::Instrument; + +/// Load a region by selecting the first from a series of region providers. +/// +/// # Examples +/// +/// ```no_run +/// # fn example() { +/// use aws_types::region::Region; +/// use std::env; +/// use aws_config::meta::region::RegionProviderChain; +/// +/// // region provider that first checks the `CUSTOM_REGION` environment variable, +/// // then checks the default provider chain, then falls back to us-east-2 +/// let provider = RegionProviderChain::first_try(env::var("CUSTOM_REGION").ok().map(Region::new)) +/// .or_default_provider() +/// .or_else(Region::new("us-east-2")); +/// # } +/// ``` +#[derive(Debug)] +pub struct RegionProviderChain { + providers: Vec>, +} + +impl RegionProviderChain { + /// Load a region from the provider chain + /// + /// The first provider to return a non-optional region will be selected + pub async fn region(&self) -> Option { + for provider in &self.providers { + if let Some(region) = provider + .region() + .instrument(tracing::info_span!("load_region", provider = ?provider)) + .await + { + return Some(region); + } + } + None + } + + /// Create a default provider chain that starts by checking this provider. + pub fn first_try(provider: impl ProvideRegion + 'static) -> Self { + RegionProviderChain { + providers: vec![Box::new(provider)], + } + } + + /// Add a fallback provider to the region provider chain. + pub fn or_else(mut self, fallback: impl ProvideRegion + 'static) -> Self { + self.providers.push(Box::new(fallback)); + self + } + + /// Create a region provider chain that starts by checking the default provider. + pub fn default_provider() -> Self { + Self::first_try(crate::default_provider::region::default_provider()) + } + + /// Fallback to the default provider + pub fn or_default_provider(mut self) -> Self { + self.providers + .push(Box::new(crate::default_provider::region::default_provider())); + self + } +} + +impl ProvideRegion for Option { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::ready(self.clone()) + } +} + +impl ProvideRegion for RegionProviderChain { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::new(RegionProviderChain::region(self)) + } +} + +/// Future wrapper returned by [`ProvideRegion`] +/// +/// Note: this module should only be used when implementing your own region providers. +pub mod future { + use std::future::Future; + use std::pin::Pin; + use std::task::{Context, Poll}; + + use aws_smithy_async::future::now_or_later::NowOrLater; + + use aws_types::region::Region; + + type BoxFuture<'a> = Pin> + Send + 'a>>; + /// Future returned by [`ProvideRegion`](super::ProvideRegion) + /// + /// - When wrapping an already loaded region, use [`ready`](ProvideRegion::ready). + /// - When wrapping an asynchronously loaded region, use [`new`](ProvideRegion::new). + pub struct ProvideRegion<'a>(NowOrLater, BoxFuture<'a>>); + impl<'a> ProvideRegion<'a> { + /// A future that wraps the given future + pub fn new(future: impl Future> + Send + 'a) -> Self { + Self(NowOrLater::new(Box::pin(future))) + } + + /// A future that resolves to a given region + pub fn ready(region: Option) -> Self { + Self(NowOrLater::ready(region)) + } + } + + impl Future for ProvideRegion<'_> { + type Output = Option; + + fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + Pin::new(&mut self.0).poll(cx) + } + } +} + +/// Provide a [`Region`](Region) to use with AWS requests +/// +/// For most cases [`default_provider`](crate::default_provider::region::default_provider) will be the best option, implementing +/// a standard provider chain. +pub trait ProvideRegion: Send + Sync + Debug { + /// Load a region from this provider + fn region(&self) -> future::ProvideRegion; +} + +impl ProvideRegion for Region { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::ready(Some(self.clone())) + } +} + +impl<'a> ProvideRegion for &'a Region { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::ready(Some((*self).clone())) + } +} + +impl ProvideRegion for Box { + fn region(&self) -> future::ProvideRegion { + self.as_ref().region() + } +} + +impl ProvideRegion for &'static str { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::ready(Some(Region::new(Cow::Borrowed(*self)))) + } +} + +#[cfg(test)] +mod test { + use crate::meta::region::RegionProviderChain; + use aws_types::region::Region; + use futures_util::FutureExt; + + #[test] + fn provider_chain() { + let a = None; + let b = Some(Region::new("us-east-1")); + let chain = RegionProviderChain::first_try(a).or_else(b); + assert_eq!( + chain.region().now_or_never().expect("ready"), + Some(Region::new("us-east-1")) + ); + } + + #[test] + fn empty_chain() { + let chain = RegionProviderChain::first_try(None).or_else(None); + assert_eq!(chain.region().now_or_never().expect("ready"), None); + } +} diff --git a/patch/aws-config/src/parsing.rs b/patch/aws-config/src/parsing.rs new file mode 100644 index 0000000000000..bda59fdc4f4cc --- /dev/null +++ b/patch/aws-config/src/parsing.rs @@ -0,0 +1,102 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::borrow::Cow; +use std::time::Duration; + +use aws_smithy_types::timeout; + +/// Parse a given string as a [`Duration`] that will be used to set a timeout. This will return an +/// error result if the given string is negative, infinite, equal to zero, NaN, or if the string +/// can't be parsed as an `f32`. The `name` and `set_by` fields are used to provide context when an +/// error occurs +/// +/// # Example +/// +/// ```dont_run +/// # use std::time::Duration; +/// use aws_config::parsing::parse_str_as_timeout; +/// let duration = parse_str_as_timeout("8", "timeout".into(), "test_success".into()).unwrap(); +/// assert_eq!(duration, Duration::from_secs_f32(8.0)); +/// +/// // This line will panic with `InvalidTimeout { name: "timeout", reason: "timeout must not be less than or equal to zero", set_by: "test_error" }` +/// let _ = parse_str_as_timeout("-1.0", "timeout".into(), "test_error".into()).unwrap(); +/// ``` +pub(crate) fn parse_str_as_timeout( + timeout: &str, + name: Cow<'static, str>, + set_by: Cow<'static, str>, +) -> Result { + match timeout.parse::() { + Ok(timeout) if timeout <= 0.0 => Err(timeout::ConfigError::InvalidTimeout { + set_by, + name, + reason: "timeout must not be less than or equal to zero".into(), + }), + Ok(timeout) if timeout.is_nan() => Err(timeout::ConfigError::InvalidTimeout { + set_by, + name, + reason: "timeout must not be NaN".into(), + }), + Ok(timeout) if timeout.is_infinite() => Err(timeout::ConfigError::InvalidTimeout { + set_by, + name, + reason: "timeout must not be infinite".into(), + }), + Ok(timeout) => Ok(Duration::from_secs_f32(timeout)), + Err(err) => Err(timeout::ConfigError::ParseError { + set_by, + name, + source: Box::new(err), + }), + } +} + +#[cfg(test)] +mod tests { + use super::parse_str_as_timeout; + use std::time::Duration; + + #[test] + fn test_integer_timeouts_are_parseable() { + let duration = parse_str_as_timeout("8", "timeout".into(), "test".into()).unwrap(); + assert_eq!(duration, Duration::from_secs_f32(8.0)); + } + + #[test] + #[should_panic = r#"ParseError { name: "timeout", set_by: "test", source: ParseFloatError { kind: Invalid } }"#] + fn test_unparseable_timeouts_produce_an_error() { + let _ = parse_str_as_timeout( + "this sentence cant be parsed as a number", + "timeout".into(), + "test".into(), + ) + .unwrap(); + } + + #[test] + #[should_panic = r#"InvalidTimeout { name: "timeout", reason: "timeout must not be less than or equal to zero", set_by: "test" }"#] + fn test_negative_timeouts_are_invalid() { + let _ = parse_str_as_timeout("-1.0", "timeout".into(), "test".into()).unwrap(); + } + + #[test] + #[should_panic = r#"InvalidTimeout { name: "timeout", reason: "timeout must not be less than or equal to zero", set_by: "test" }"#] + fn test_setting_timeout_to_zero_is_invalid() { + let _ = parse_str_as_timeout("0", "timeout".into(), "test".into()).unwrap(); + } + + #[test] + #[should_panic = r#"InvalidTimeout { name: "timeout", reason: "timeout must not be NaN", set_by: "test" }"#] + fn test_nan_timeouts_are_invalid() { + let _ = parse_str_as_timeout("NaN", "timeout".into(), "test".into()).unwrap(); + } + + #[test] + #[should_panic = r#"InvalidTimeout { name: "timeout", reason: "timeout must not be infinite", set_by: "test" }"#] + fn test_infinite_timeouts_are_invalid() { + let _ = parse_str_as_timeout("inf", "timeout".into(), "test".into()).unwrap(); + } +} diff --git a/patch/aws-config/src/profile/app_name.rs b/patch/aws-config/src/profile/app_name.rs new file mode 100644 index 0000000000000..563fd61db2419 --- /dev/null +++ b/patch/aws-config/src/profile/app_name.rs @@ -0,0 +1,184 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load an app name from an AWS profile + +use crate::provider_config::ProviderConfig; +use aws_types::app_name::AppName; +use aws_types::os_shim_internal::{Env, Fs}; + +/// Loads an app name from a profile file +/// +/// This provider will attempt to shared AWS shared configuration and then read the +/// `sdk-ua-app-id` property from the active profile. +/// +/// # Examples +/// +/// **Loads "my-app" as the app name** +/// ```ini +/// [default] +/// sdk-ua-app-id = my-app +/// ``` +/// +/// **Loads "my-app" as the app name _if and only if_ the `AWS_PROFILE` environment variable +/// is set to `other`.** +/// ```ini +/// [profile other] +/// sdk-ua-app-id = my-app +/// ``` +/// +/// This provider is part of the [default app name provider chain](crate::default_provider::app_name). +#[derive(Debug, Default)] +pub struct ProfileFileAppNameProvider { + fs: Fs, + env: Env, + profile_override: Option, +} + +impl ProfileFileAppNameProvider { + /// Create a new [ProfileFileAppNameProvider} + /// + /// To override the selected profile, set the `AWS_PROFILE` environment variable or use the [`Builder`]. + pub fn new() -> Self { + Self { + fs: Fs::real(), + env: Env::real(), + profile_override: None, + } + } + + /// [`Builder`] to construct a [`ProfileFileAppNameProvider`] + pub fn builder() -> Builder { + Builder::default() + } + + /// Parses the profile config and attempts to find an app name. + pub async fn app_name(&self) -> Option { + let profile = super::parser::load(&self.fs, &self.env) + .await + .map_err(|err| tracing::warn!(err = %err, "failed to parse profile")) + .ok()?; + let selected_profile_name = self + .profile_override + .as_deref() + .unwrap_or_else(|| profile.selected_profile()); + let selected_profile = profile.get_profile(selected_profile_name)?; + selected_profile + .get("sdk-ua-app-id") + .map(|name| match AppName::new(name.to_owned()) { + Ok(app_name) => Some(app_name), + Err(err) => { + tracing::warn!(err = %err, "`sdk-ua-app-id` property in profile `{}` was invalid", selected_profile_name); + None + } + }) + .flatten() + } +} + +/// Builder for [ProfileFileAppNameProvider] +#[derive(Default)] +pub struct Builder { + config: Option, + profile_override: Option, +} + +impl Builder { + /// Override the configuration for this provider + pub fn configure(mut self, config: &ProviderConfig) -> Self { + self.config = Some(config.clone()); + self + } + + /// Override the profile name used by the [ProfileFileAppNameProvider] + pub fn profile_name(mut self, profile_name: impl Into) -> Self { + self.profile_override = Some(profile_name.into()); + self + } + + /// Build a [ProfileFileAppNameProvider] from this builder + pub fn build(self) -> ProfileFileAppNameProvider { + let conf = self.config.unwrap_or_default(); + ProfileFileAppNameProvider { + env: conf.env(), + fs: conf.fs(), + profile_override: self.profile_override, + } + } +} + +#[cfg(test)] +mod tests { + use super::ProfileFileAppNameProvider; + use crate::provider_config::ProviderConfig; + use crate::test_case::no_traffic_connector; + use aws_sdk_sts::AppName; + use aws_types::os_shim_internal::{Env, Fs}; + use tracing_test::traced_test; + + fn provider_config(config_contents: &str) -> ProviderConfig { + let fs = Fs::from_slice(&[("test_config", config_contents)]); + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "test_config")]); + ProviderConfig::empty() + .with_fs(fs) + .with_env(env) + .with_http_connector(no_traffic_connector()) + } + + fn default_provider(config_contents: &str) -> ProfileFileAppNameProvider { + ProfileFileAppNameProvider::builder() + .configure(&provider_config(config_contents)) + .build() + } + + #[tokio::test] + async fn no_app_name() { + assert_eq!(None, default_provider("[default]\n").app_name().await); + } + + #[tokio::test] + async fn app_name_default_profile() { + assert_eq!( + Some(AppName::new("test").unwrap()), + default_provider("[default]\nsdk-ua-app-id = test") + .app_name() + .await + ); + } + + #[tokio::test] + async fn app_name_other_profiles() { + let config = "\ + [default]\n\ + sdk-ua-app-id = test\n\ + \n\ + [profile other]\n\ + sdk-ua-app-id = bar\n + "; + assert_eq!( + Some(AppName::new("bar").unwrap()), + ProfileFileAppNameProvider::builder() + .profile_name("other") + .configure(&provider_config(config)) + .build() + .app_name() + .await + ); + } + + #[traced_test] + #[tokio::test] + async fn invalid_app_name() { + assert_eq!( + None, + default_provider("[default]\nsdk-ua-app-id = definitely invalid") + .app_name() + .await + ); + assert!(logs_contain( + "`sdk-ua-app-id` property in profile `default` was invalid" + )); + } +} diff --git a/patch/aws-config/src/profile/credentials.rs b/patch/aws-config/src/profile/credentials.rs new file mode 100644 index 0000000000000..9a6b4a494a593 --- /dev/null +++ b/patch/aws-config/src/profile/credentials.rs @@ -0,0 +1,496 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Profile File Based Credential Providers +//! +//! Profile file based providers combine two pieces: +//! +//! 1. Parsing and resolution of the assume role chain +//! 2. A user-modifiable hashmap of provider name to provider. +//! +//! Profile file based providers first determine the chain of providers that will be used to load +//! credentials. After determining and validating this chain, a `Vec` of providers will be created. +//! +//! Each subsequent provider will provide boostrap providers to the next provider in order to load +//! the final credentials. +//! +//! This module contains two sub modules: +//! - `repr` which contains an abstract representation of a provider chain and the logic to +//! build it from `~/.aws/credentials` and `~/.aws/config`. +//! - `exec` which contains a chain representation of providers to implement passing bootstrapped credentials +//! through a series of providers. + +use std::borrow::Cow; +use std::collections::HashMap; +use std::error::Error; +use std::fmt::{Display, Formatter}; +use std::sync::Arc; + +use aws_types::credentials::{self, future, CredentialsError, ProvideCredentials}; + +use tracing::Instrument; + +use crate::profile::credentials::exec::named::NamedProviderFactory; +use crate::profile::credentials::exec::{ClientConfiguration, ProviderChain}; +use crate::profile::parser::ProfileParseError; +use crate::profile::Profile; +use crate::provider_config::ProviderConfig; + +mod exec; +mod repr; + +impl ProvideCredentials for ProfileFileCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a> + where + Self: 'a, + { + future::ProvideCredentials::new(self.load_credentials().instrument(tracing::debug_span!( + "load_credentials", + provider = %"Profile" + ))) + } +} + +/// AWS Profile based credentials provider +/// +/// This credentials provider will load credentials from `~/.aws/config` and `~/.aws/credentials`. +/// The locations of these files are configurable via environment variables, see [below](#location-of-profile-files). +/// +/// Generally, this will be constructed via the default provider chain, however, it can be manually +/// constructed with the builder: +/// ```rust,no_run +/// use aws_config::profile::ProfileFileCredentialsProvider; +/// let provider = ProfileFileCredentialsProvider::builder().build(); +/// ``` +/// +/// _Note: Profile providers to not implement any caching. They will reload and reparse the profile +/// from the file system when called. See [lazy_caching](crate::meta::credentials::LazyCachingCredentialsProvider) for +/// more information about caching._ +/// +/// This provider supports several different credentials formats: +/// ### Credentials defined explicitly within the file +/// ```ini +/// [default] +/// aws_access_key_id = 123 +/// aws_secret_access_key = 456 +/// ``` +/// +/// ### Assume Role Credentials loaded from a credential source +/// ```ini +/// [default] +/// role_arn = arn:aws:iam::123456789:role/RoleA +/// credential_source = Environment +/// ``` +/// +/// NOTE: Currently only the `Environment` credential source is supported although it is possible to +/// provide custom sources: +/// ```no_run +/// use aws_types::credentials::{self, ProvideCredentials, future}; +/// use aws_config::profile::ProfileFileCredentialsProvider; +/// #[derive(Debug)] +/// struct MyCustomProvider; +/// impl MyCustomProvider { +/// async fn load_credentials(&self) -> credentials::Result { +/// todo!() +/// } +/// } +/// +/// impl ProvideCredentials for MyCustomProvider { +/// fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials where Self: 'a { +/// future::ProvideCredentials::new(self.load_credentials()) +/// } +/// } +/// # if cfg!(any(feature = "rustls", feature = "native-tls")) { +/// let provider = ProfileFileCredentialsProvider::builder() +/// .with_custom_provider("Custom", MyCustomProvider) +/// .build(); +/// } +/// ``` +/// +/// ### Assume role credentials from a source profile +/// ```ini +/// [default] +/// role_arn = arn:aws:iam::123456789:role/RoleA +/// source_profile = base +/// +/// [profile base] +/// aws_access_key_id = 123 +/// aws_secret_access_key = 456 +/// ``` +/// +/// Other more complex configurations are possible, consult `test-data/assume-role-tests.json`. +/// +/// ### Loading Credentials from SSO +/// ```ini +/// [default] +/// sso_start_url = https://example.com/start +/// sso_region = us-east-2 +/// sso_account_id = 123456789011 +/// sso_role_name = readOnly +/// region = us-west-2 +/// ``` +/// +/// SSO can also be used as a source profile for assume role chains. +/// +/// ## Location of Profile Files +/// * The location of the config file will be loaded from the `AWS_CONFIG_FILE` environment variable +/// with a fallback to `~/.aws/config` +/// * The location of the credentials file will be loaded from the `AWS_SHARED_CREDENTIALS_FILE` +/// environment variable with a fallback to `~/.aws/credentials` +/// +/// ## Home directory resolution +/// Home directory resolution is implemented to match the behavior of the CLI & Python. `~` is only +/// used for home directory resolution when it: +/// - Starts the path +/// - Is followed immediately by `/` or a platform specific separator. (On windows, `~/` and `~\` both +/// resolve to the home directory. +/// +/// When determining the home directory, the following environment variables are checked: +/// - `HOME` on all platforms +/// - `USERPROFILE` on Windows +/// - The concatenation of `HOMEDRIVE` and `HOMEPATH` on Windows (`$HOMEDRIVE$HOMEPATH`) +#[derive(Debug)] +pub struct ProfileFileCredentialsProvider { + factory: NamedProviderFactory, + client_config: ClientConfiguration, + provider_config: ProviderConfig, + profile_override: Option, +} + +impl ProfileFileCredentialsProvider { + /// Builder for this credentials provider + pub fn builder() -> Builder { + Builder::default() + } + + async fn load_credentials(&self) -> credentials::Result { + let inner_provider = build_provider_chain( + &self.provider_config, + &self.factory, + self.profile_override.as_deref(), + ) + .await + .map_err(|err| match err { + ProfileFileError::NoProfilesDefined + | ProfileFileError::ProfileDidNotContainCredentials { .. } => { + CredentialsError::not_loaded(err) + } + _ => CredentialsError::invalid_configuration(format!( + "ProfileFile provider could not be built: {}", + &err + )), + })?; + let mut creds = match inner_provider + .base() + .provide_credentials() + .instrument(tracing::debug_span!("load_base_credentials")) + .await + { + Ok(creds) => { + tracing::info!(creds = ?creds, "loaded base credentials"); + creds + } + Err(e) => { + tracing::warn!(error = %e, "failed to load base credentials"); + return Err(CredentialsError::provider_error(e)); + } + }; + for provider in inner_provider.chain().iter() { + let next_creds = provider + .credentials(creds, &self.client_config) + .instrument(tracing::debug_span!("load_assume_role", provider = ?provider)) + .await; + match next_creds { + Ok(next_creds) => { + tracing::info!(creds = ?next_creds, "loaded assume role credentials"); + creds = next_creds + } + Err(e) => { + tracing::warn!(provider = ?provider, "failed to load assume role credentials"); + return Err(CredentialsError::provider_error(e)); + } + } + } + Ok(creds) + } +} + +/// An Error building a Credential source from an AWS Profile +#[derive(Debug)] +#[non_exhaustive] +pub enum ProfileFileError { + /// The profile was not a valid AWS profile + #[non_exhaustive] + CouldNotParseProfile(ProfileParseError), + + /// No profiles existed (the profile was empty) + #[non_exhaustive] + NoProfilesDefined, + + /// The profile did not contain any credential information + #[non_exhaustive] + ProfileDidNotContainCredentials { + /// The name of the profile + profile: String, + }, + + /// The profile contained an infinite loop of `source_profile` references + #[non_exhaustive] + CredentialLoop { + /// Vec of profiles leading to the loop + profiles: Vec, + /// The next profile that caused the loop + next: String, + }, + + /// The profile was missing a credential source + #[non_exhaustive] + MissingCredentialSource { + /// The name of the profile + profile: String, + /// Error message + message: Cow<'static, str>, + }, + /// The profile contained an invalid credential source + #[non_exhaustive] + InvalidCredentialSource { + /// The name of the profile + profile: String, + /// Error message + message: Cow<'static, str>, + }, + /// The profile referred to a another profile by name that was not defined + #[non_exhaustive] + MissingProfile { + /// The name of the profile + profile: String, + /// Error message + message: Cow<'static, str>, + }, + /// The profile referred to `credential_source` that was not defined + #[non_exhaustive] + UnknownProvider { + /// The name of the provider + name: String, + }, +} + +impl ProfileFileError { + fn missing_field(profile: &Profile, field: &'static str) -> Self { + ProfileFileError::MissingProfile { + profile: profile.name().to_string(), + message: format!("`{}` was missing", field).into(), + } + } +} + +impl Display for ProfileFileError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + ProfileFileError::CouldNotParseProfile(err) => { + write!(f, "could not parse profile file: {}", err) + } + ProfileFileError::CredentialLoop { profiles, next } => write!( + f, + "profile formed an infinite loop. first we loaded {:?}, \ + then attempted to reload {}", + profiles, next + ), + ProfileFileError::MissingCredentialSource { profile, message } => { + write!(f, "missing credential source in `{}`: {}", profile, message) + } + ProfileFileError::InvalidCredentialSource { profile, message } => { + write!(f, "invalid credential source in `{}`: {}", profile, message) + } + ProfileFileError::MissingProfile { profile, message } => { + write!(f, "profile `{}` was not defined: {}", profile, message) + } + ProfileFileError::UnknownProvider { name } => write!( + f, + "profile referenced `{}` provider but that provider is not supported", + name + ), + ProfileFileError::NoProfilesDefined => write!(f, "No profiles were defined"), + ProfileFileError::ProfileDidNotContainCredentials { profile } => write!( + f, + "profile `{}` did not contain credential information", + profile + ), + } + } +} + +impl Error for ProfileFileError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match self { + ProfileFileError::CouldNotParseProfile(err) => Some(err), + _ => None, + } + } +} + +/// Builder for [`ProfileFileCredentialsProvider`] +#[derive(Default)] +pub struct Builder { + provider_config: Option, + profile_override: Option, + custom_providers: HashMap, Arc>, +} + +impl Builder { + /// Override the configuration for the [`ProfileFileCredentialsProvider`] + /// + /// # Examples + /// + /// ```no_run + /// # async fn test() { + /// use aws_config::profile::ProfileFileCredentialsProvider; + /// use aws_config::provider_config::ProviderConfig; + /// let provider = ProfileFileCredentialsProvider::builder() + /// .configure(&ProviderConfig::with_default_region().await) + /// .build(); + /// # } + /// ``` + pub fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.provider_config = Some(provider_config.clone()); + self + } + + /// Adds a custom credential source + /// + /// # Examples + /// + /// ```no_run + /// use aws_types::credentials::{self, ProvideCredentials, future}; + /// use aws_config::profile::ProfileFileCredentialsProvider; + /// #[derive(Debug)] + /// struct MyCustomProvider; + /// impl MyCustomProvider { + /// async fn load_credentials(&self) -> credentials::Result { + /// todo!() + /// } + /// } + /// + /// impl ProvideCredentials for MyCustomProvider { + /// fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials where Self: 'a { + /// future::ProvideCredentials::new(self.load_credentials()) + /// } + /// } + /// + /// # if cfg!(any(feature = "rustls", feature = "native-tls")) { + /// let provider = ProfileFileCredentialsProvider::builder() + /// .with_custom_provider("Custom", MyCustomProvider) + /// .build(); + /// # } + /// ``` + pub fn with_custom_provider( + mut self, + name: impl Into>, + provider: impl ProvideCredentials + 'static, + ) -> Self { + self.custom_providers + .insert(name.into(), Arc::new(provider)); + self + } + + /// Override the profile name used by the [`ProfileFileCredentialsProvider`] + pub fn profile_name(mut self, profile_name: impl Into) -> Self { + self.profile_override = Some(profile_name.into()); + self + } + + /// Builds a [`ProfileFileCredentialsProvider`] + pub fn build(self) -> ProfileFileCredentialsProvider { + let build_span = tracing::debug_span!("build_profile_provider"); + let _enter = build_span.enter(); + let conf = self.provider_config.unwrap_or_default(); + let mut named_providers = self.custom_providers.clone(); + named_providers + .entry("Environment".into()) + .or_insert_with(|| { + Arc::new(crate::environment::credentials::EnvironmentVariableCredentialsProvider::new_with_env( + conf.env(), + )) + }); + + named_providers + .entry("Ec2InstanceMetadata".into()) + .or_insert_with(|| { + Arc::new( + crate::imds::credentials::ImdsCredentialsProvider::builder() + .configure(&conf) + .build(), + ) + }); + + named_providers + .entry("EcsContainer".into()) + .or_insert_with(|| { + Arc::new( + crate::ecs::EcsCredentialsProvider::builder() + .configure(&conf) + .build(), + ) + }); + let factory = exec::named::NamedProviderFactory::new(named_providers); + let core_client = conf.sts_client(); + + ProfileFileCredentialsProvider { + factory, + client_config: ClientConfiguration { + sts_client: core_client, + region: conf.region(), + }, + provider_config: conf, + profile_override: self.profile_override, + } + } +} + +async fn build_provider_chain( + provider_config: &ProviderConfig, + factory: &NamedProviderFactory, + profile_override: Option<&str>, +) -> Result { + let profile_set = super::parser::load(&provider_config.fs(), &provider_config.env()) + .await + .map_err(|err| { + tracing::warn!(err = %err, "failed to parse profile"); + ProfileFileError::CouldNotParseProfile(err) + })?; + let repr = repr::resolve_chain(&profile_set, profile_override)?; + tracing::info!(chain = ?repr, "constructed abstract provider from config file"); + exec::ProviderChain::from_repr(provider_config, repr, factory) +} + +#[cfg(test)] +mod test { + use tracing_test::traced_test; + + use crate::profile::credentials::Builder; + use crate::test_case::TestEnvironment; + + macro_rules! make_test { + ($name: ident) => { + #[traced_test] + #[tokio::test] + async fn $name() { + TestEnvironment::from_dir(concat!( + "./test-data/profile-provider/", + stringify!($name) + )) + .unwrap() + .execute(|conf| async move { Builder::default().configure(&conf).build() }) + .await + } + }; + } + + make_test!(e2e_assume_role); + make_test!(empty_config); + make_test!(retry_on_error); + make_test!(invalid_config); + make_test!(region_override); +} diff --git a/patch/aws-config/src/profile/credentials/exec.rs b/patch/aws-config/src/profile/credentials/exec.rs new file mode 100644 index 0000000000000..d56e34ed6c23a --- /dev/null +++ b/patch/aws-config/src/profile/credentials/exec.rs @@ -0,0 +1,232 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::sync::Arc; + +use aws_sdk_sts::operation::AssumeRole; +use aws_sdk_sts::{Config, Credentials}; +use aws_types::region::Region; + +use super::repr::{self, BaseProvider}; + +use crate::profile::credentials::ProfileFileError; +use crate::provider_config::ProviderConfig; +use crate::sso::{SsoConfig, SsoCredentialsProvider}; +use crate::sts; +use crate::web_identity_token::{StaticConfiguration, WebIdentityTokenCredentialsProvider}; +use aws_sdk_sts::middleware::DefaultMiddleware; +use aws_smithy_client::erase::DynConnector; +use aws_types::credentials::{self, CredentialsError, ProvideCredentials}; + +use std::fmt::Debug; + +#[derive(Debug)] +pub struct AssumeRoleProvider { + role_arn: String, + external_id: Option, + session_name: Option, +} + +#[derive(Debug)] +pub struct ClientConfiguration { + pub(crate) sts_client: aws_smithy_client::Client, + pub(crate) region: Option, +} + +impl AssumeRoleProvider { + pub async fn credentials( + &self, + input_credentials: Credentials, + client_config: &ClientConfiguration, + ) -> credentials::Result { + let config = Config::builder() + .credentials_provider(input_credentials) + .region(client_config.region.clone()) + .build(); + let session_name = &self + .session_name + .as_ref() + .cloned() + .unwrap_or_else(|| sts::util::default_session_name("assume-role-from-profile")); + let operation = AssumeRole::builder() + .role_arn(&self.role_arn) + .set_external_id(self.external_id.clone()) + .role_session_name(session_name) + .build() + .expect("operation is valid") + .make_operation(&config) + .await + .expect("valid operation"); + let assume_role_creds = client_config + .sts_client + .call(operation) + .await + .map_err(CredentialsError::provider_error)? + .credentials; + sts::util::into_credentials(assume_role_creds, "AssumeRoleProvider") + } +} + +#[derive(Debug)] +pub(super) struct ProviderChain { + base: Arc, + chain: Vec, +} + +impl ProviderChain { + pub fn base(&self) -> &dyn ProvideCredentials { + self.base.as_ref() + } + + pub fn chain(&self) -> &[AssumeRoleProvider] { + self.chain.as_slice() + } +} + +impl ProviderChain { + pub fn from_repr( + provider_config: &ProviderConfig, + repr: repr::ProfileChain, + factory: &named::NamedProviderFactory, + ) -> Result { + let base = match repr.base() { + BaseProvider::NamedSource(name) => { + factory + .provider(name) + .ok_or(ProfileFileError::UnknownProvider { + name: name.to_string(), + })? + } + BaseProvider::AccessKey(key) => Arc::new(key.clone()), + BaseProvider::WebIdentityTokenRole { + role_arn, + web_identity_token_file, + session_name, + } => { + let provider = WebIdentityTokenCredentialsProvider::builder() + .static_configuration(StaticConfiguration { + web_identity_token_file: web_identity_token_file.into(), + role_arn: role_arn.to_string(), + session_name: session_name.map(|sess| sess.to_string()).unwrap_or_else( + || sts::util::default_session_name("web-identity-token-profile"), + ), + }) + .configure(provider_config) + .build(); + Arc::new(provider) + } + BaseProvider::Sso { + sso_account_id, + sso_region, + sso_role_name, + sso_start_url, + } => { + let sso_config = SsoConfig { + account_id: sso_account_id.to_string(), + role_name: sso_role_name.to_string(), + start_url: sso_start_url.to_string(), + region: Region::new(sso_region.to_string()), + }; + Arc::new(SsoCredentialsProvider::new(provider_config, sso_config)) + } + }; + tracing::info!(base = ?repr.base(), "first credentials will be loaded from {:?}", repr.base()); + let chain = repr + .chain() + .iter() + .map(|role_arn| { + tracing::info!(role_arn = ?role_arn, "which will be used to assume a role"); + AssumeRoleProvider { + role_arn: role_arn.role_arn.into(), + external_id: role_arn.external_id.map(|id| id.into()), + session_name: role_arn.session_name.map(|id| id.into()), + } + }) + .collect(); + Ok(ProviderChain { base, chain }) + } +} + +pub mod named { + use std::collections::HashMap; + use std::sync::Arc; + + use aws_types::credentials::ProvideCredentials; + use std::borrow::Cow; + + #[derive(Debug)] + pub struct NamedProviderFactory { + providers: HashMap, Arc>, + } + + fn lower_cow(mut inp: Cow) -> Cow { + if !inp.chars().all(|c| c.is_ascii_lowercase()) { + inp.to_mut().make_ascii_lowercase(); + } + inp + } + + impl NamedProviderFactory { + pub fn new(providers: HashMap, Arc>) -> Self { + let providers = providers + .into_iter() + .map(|(k, v)| (lower_cow(k), v)) + .collect(); + Self { providers } + } + + pub fn provider(&self, name: &str) -> Option> { + self.providers.get(&lower_cow(Cow::Borrowed(name))).cloned() + } + } +} + +#[cfg(test)] +mod test { + use crate::profile::credentials::exec::named::NamedProviderFactory; + use crate::profile::credentials::exec::ProviderChain; + use crate::profile::credentials::repr::{BaseProvider, ProfileChain}; + use crate::provider_config::ProviderConfig; + use crate::test_case::no_traffic_connector; + + use aws_types::Credentials; + use std::collections::HashMap; + use std::sync::Arc; + + #[test] + fn providers_case_insensitive() { + let mut base = HashMap::new(); + base.insert( + "Environment".into(), + Arc::new(Credentials::new("key", "secret", None, None, "test")) as _, + ); + let provider = NamedProviderFactory::new(base); + assert!(provider.provider("environment").is_some()); + assert!(provider.provider("envIROnment").is_some()); + assert!(provider.provider(" envIROnment").is_none()); + assert!(provider.provider("Environment").is_some()); + } + + #[test] + fn error_on_unknown_provider() { + let factory = NamedProviderFactory::new(HashMap::new()); + let chain = ProviderChain::from_repr( + &ProviderConfig::empty().with_http_connector(no_traffic_connector()), + ProfileChain { + base: BaseProvider::NamedSource("floozle"), + chain: vec![], + }, + &factory, + ); + let err = chain.expect_err("no source by that name"); + assert!( + format!("{}", err).contains( + "profile referenced `floozle` provider but that provider is not supported" + ), + "`{}` did not match expected error", + err + ); + } +} diff --git a/patch/aws-config/src/profile/credentials/repr.rs b/patch/aws-config/src/profile/credentials/repr.rs new file mode 100644 index 0000000000000..5e7ab250b1b0d --- /dev/null +++ b/patch/aws-config/src/profile/credentials/repr.rs @@ -0,0 +1,492 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Flattened Representation of an AssumeRole chain +//! +//! Assume Role credentials in profile files can chain together credentials from multiple +//! different providers with subsequent credentials being used to configure subsequent providers. +//! +//! This module can parse and resolve the profile chain into a flattened representation with +//! 1-credential-per row (as opposed to a direct profile file representation which can combine +//! multiple actions into the same profile). + +use crate::profile::credentials::ProfileFileError; +use crate::profile::{Profile, ProfileSet}; +use aws_types::Credentials; + +/// Chain of Profile Providers +/// +/// Within a profile file, a chain of providers is produced. Starting with a base provider, +/// subsequent providers use the credentials from previous providers to perform their task. +/// +/// ProfileChain is a direct representation of the Profile. It can contain named providers +/// that don't actually have implementations. +#[derive(Debug)] +pub struct ProfileChain<'a> { + pub(crate) base: BaseProvider<'a>, + pub(crate) chain: Vec>, +} + +impl<'a> ProfileChain<'a> { + pub fn base(&self) -> &BaseProvider<'a> { + &self.base + } + + pub fn chain(&self) -> &[RoleArn<'a>] { + self.chain.as_slice() + } +} + +/// A base member of the profile chain +/// +/// Base providers do not require input credentials to provide their own credentials, +/// e.g. IMDS, ECS, Environment variables +#[derive(Debug, Clone)] +#[non_exhaustive] +pub enum BaseProvider<'a> { + /// A profile that specifies a named credential source + /// Eg: `credential_source = Ec2InstanceMetadata` + /// + /// The following profile produces two separate `ProfileProvider` rows: + /// 1. `BaseProvider::NamedSource("Ec2InstanceMetadata")` + /// 2. `RoleArn { role_arn: "...", ... } + /// ```ini + /// [profile assume-role] + /// role_arn = arn:aws:iam::123456789:role/MyRole + /// credential_source = Ec2InstanceMetadata + /// ``` + NamedSource(&'a str), + + /// A profile with explicitly configured access keys + /// + /// Example + /// ```ini + /// [profile C] + /// aws_access_key_id = abc123 + /// aws_secret_access_key = def456 + /// ``` + AccessKey(Credentials), + + WebIdentityTokenRole { + role_arn: &'a str, + web_identity_token_file: &'a str, + session_name: Option<&'a str>, + }, + + /// An SSO Provider + Sso { + sso_account_id: &'a str, + sso_region: &'a str, + sso_role_name: &'a str, + sso_start_url: &'a str, + }, +} + +/// A profile that specifies a role to assume +/// +/// A RoleArn can only be created from either a profile with `source_profile` +/// or one with `credential_source`. +#[derive(Debug)] +pub struct RoleArn<'a> { + /// Role to assume + pub role_arn: &'a str, + /// external_id parameter to pass to the assume role provider + pub external_id: Option<&'a str>, + + /// session name parameter to pass to the assume role provider + pub session_name: Option<&'a str>, +} + +/// Resolve a ProfileChain from a ProfileSet or return an error +pub fn resolve_chain<'a>( + profile_set: &'a ProfileSet, + profile_override: Option<&str>, +) -> Result, ProfileFileError> { + if profile_set.is_empty() { + return Err(ProfileFileError::NoProfilesDefined); + } + let mut source_profile_name = + profile_override.unwrap_or_else(|| profile_set.selected_profile()); + let mut visited_profiles = vec![]; + let mut chain = vec![]; + let base = loop { + // Get the next profile in the chain + let profile = profile_set.get_profile(source_profile_name).ok_or( + ProfileFileError::MissingProfile { + profile: source_profile_name.into(), + message: format!( + "could not find source profile {} referenced from {}", + source_profile_name, + visited_profiles.last().unwrap_or(&"the root profile") + ) + .into(), + }, + )?; + // If the profile we just got is one we've already seen, we're in a loop and + // need to break out with a CredentialLoop error + if visited_profiles.contains(&source_profile_name) { + return Err(ProfileFileError::CredentialLoop { + profiles: visited_profiles + .into_iter() + .map(|s| s.to_string()) + .collect(), + next: source_profile_name.to_string(), + }); + } + // otherwise, store the name of the profile in case we see it again later + visited_profiles.push(source_profile_name); + // After the first item in the chain, we will prioritize static credentials if they exist + if visited_profiles.len() > 1 { + let try_static = static_creds_from_profile(profile); + if let Ok(static_credentials) = try_static { + break BaseProvider::AccessKey(static_credentials); + } + } + + let next_profile = { + // The existence of a `role_arn` is the only signal that multiple profiles will be chained. + // We check for one here and then process the profile accordingly as either a "chain provider" + // or a "base provider" + if let Some(role_provider) = role_arn_from_profile(profile) { + let next = chain_provider(profile)?; + chain.push(role_provider); + next + } else { + break base_provider(profile).map_err(|err| { + // It's possible for base_provider to return a `ProfileFileError::ProfileDidNotContainCredentials` + // if we're still looking at the first provider we want to surface it. However, + // if we're looking at any provider after the first we want to instead return a `ProfileFileError::InvalidCredentialSource` + if visited_profiles.len() == 1 { + err + } else { + ProfileFileError::InvalidCredentialSource { + profile: profile.name().into(), + message: format!("could not load source profile: {}", err).into(), + } + } + })?; + } + }; + + match next_profile { + NextProfile::SelfReference => { + // self referential profile, don't go through the loop because it will error + // on the infinite loop check. Instead, reload this profile as a base profile + // and exit. + break base_provider(profile)?; + } + NextProfile::Named(name) => source_profile_name = name, + } + }; + chain.reverse(); + Ok(ProfileChain { base, chain }) +} + +mod role { + pub const ROLE_ARN: &str = "role_arn"; + pub const EXTERNAL_ID: &str = "external_id"; + pub const SESSION_NAME: &str = "role_session_name"; + + pub const CREDENTIAL_SOURCE: &str = "credential_source"; + pub const SOURCE_PROFILE: &str = "source_profile"; +} + +mod sso { + pub const ACCOUNT_ID: &str = "sso_account_id"; + pub const REGION: &str = "sso_region"; + pub const ROLE_NAME: &str = "sso_role_name"; + pub const START_URL: &str = "sso_start_url"; +} + +mod web_identity_token { + pub const TOKEN_FILE: &str = "web_identity_token_file"; +} + +mod static_credentials { + pub const AWS_ACCESS_KEY_ID: &str = "aws_access_key_id"; + pub const AWS_SECRET_ACCESS_KEY: &str = "aws_secret_access_key"; + pub const AWS_SESSION_TOKEN: &str = "aws_session_token"; +} +const PROVIDER_NAME: &str = "ProfileFile"; + +fn base_provider(profile: &Profile) -> Result { + // the profile must define either a `CredentialsSource` or a concrete set of access keys + match profile.get(role::CREDENTIAL_SOURCE) { + Some(source) => Ok(BaseProvider::NamedSource(source)), + None => web_identity_token_from_profile(profile) + .or_else(|| sso_from_profile(profile)) + .unwrap_or_else(|| Ok(BaseProvider::AccessKey(static_creds_from_profile(profile)?))), + } +} + +enum NextProfile<'a> { + SelfReference, + Named(&'a str), +} + +fn chain_provider(profile: &Profile) -> Result { + let (source_profile, credential_source) = ( + profile.get(role::SOURCE_PROFILE), + profile.get(role::CREDENTIAL_SOURCE), + ); + match (source_profile, credential_source) { + (Some(_), Some(_)) => Err(ProfileFileError::InvalidCredentialSource { + profile: profile.name().to_string(), + message: "profile contained both source_profile and credential_source. \ + Only one or the other can be defined" + .into(), + }), + (None, None) => Err(ProfileFileError::InvalidCredentialSource { + profile: profile.name().to_string(), + message: + "profile must contain `source_profile` or `credential_source` but neither were defined" + .into(), + }), + (Some(source_profile), None) if source_profile == profile.name() => { + Ok(NextProfile::SelfReference) + } + (Some(source_profile), None) => Ok(NextProfile::Named(source_profile)), + // we want to loop back into this profile and pick up the credential source + (None, Some(_credential_source)) => Ok(NextProfile::SelfReference), + } +} + +fn role_arn_from_profile(profile: &Profile) -> Option { + // Web Identity Tokens are root providers, not chained roles + if profile.get(web_identity_token::TOKEN_FILE).is_some() { + return None; + } + let role_arn = profile.get(role::ROLE_ARN)?; + let session_name = profile.get(role::SESSION_NAME); + let external_id = profile.get(role::EXTERNAL_ID); + Some(RoleArn { + role_arn, + external_id, + session_name, + }) +} + +fn sso_from_profile(profile: &Profile) -> Option> { + /* + Sample: + [profile sample-profile] + sso_account_id = 012345678901 + sso_region = us-east-1 + sso_role_name = SampleRole + sso_start_url = https://d-abc123.awsapps.com/start-beta + */ + let account_id = profile.get(sso::ACCOUNT_ID); + let region = profile.get(sso::REGION); + let role_name = profile.get(sso::ROLE_NAME); + let start_url = profile.get(sso::START_URL); + if [account_id, region, role_name, start_url] + .iter() + .all(|field| field.is_none()) + { + return None; + } + let missing_field = |s| move || ProfileFileError::missing_field(profile, s); + let parse_profile = || { + let sso_account_id = account_id.ok_or_else(missing_field(sso::ACCOUNT_ID))?; + let sso_region = region.ok_or_else(missing_field(sso::REGION))?; + let sso_role_name = role_name.ok_or_else(missing_field(sso::ROLE_NAME))?; + let sso_start_url = start_url.ok_or_else(missing_field(sso::START_URL))?; + Ok(BaseProvider::Sso { + sso_account_id, + sso_region, + sso_role_name, + sso_start_url, + }) + }; + Some(parse_profile()) +} + +fn web_identity_token_from_profile( + profile: &Profile, +) -> Option> { + let session_name = profile.get(role::SESSION_NAME); + match ( + profile.get(role::ROLE_ARN), + profile.get(web_identity_token::TOKEN_FILE), + ) { + (Some(role_arn), Some(token_file)) => Some(Ok(BaseProvider::WebIdentityTokenRole { + role_arn, + web_identity_token_file: token_file, + session_name, + })), + (None, None) => None, + (Some(_role_arn), None) => None, + (None, Some(_token_file)) => Some(Err(ProfileFileError::InvalidCredentialSource { + profile: profile.name().to_string(), + message: "`web_identity_token_file` was specified but `role_arn` was missing".into(), + })), + } +} + +/// Load static credentials from a profile +/// +/// Example: +/// ```ini +/// [profile B] +/// aws_access_key_id = abc123 +/// aws_secret_access_key = def456 +/// ``` +fn static_creds_from_profile(profile: &Profile) -> Result { + use static_credentials::*; + let access_key = profile.get(AWS_ACCESS_KEY_ID); + let secret_key = profile.get(AWS_SECRET_ACCESS_KEY); + let session_token = profile.get(AWS_SESSION_TOKEN); + // If all three fields are missing return a `ProfileFileError::ProfileDidNotContainCredentials` + if let (None, None, None) = (access_key, secret_key, session_token) { + return Err(ProfileFileError::ProfileDidNotContainCredentials { + profile: profile.name().to_string(), + }); + } + // Otherwise, check to make sure the access and secret keys are defined + let access_key = access_key.ok_or_else(|| ProfileFileError::InvalidCredentialSource { + profile: profile.name().to_string(), + message: "profile missing aws_access_key_id".into(), + })?; + let secret_key = secret_key.ok_or_else(|| ProfileFileError::InvalidCredentialSource { + profile: profile.name().to_string(), + message: "profile missing aws_secret_access_key".into(), + })?; + // There might not be an active session token so we don't error out if it's missing + Ok(Credentials::new( + access_key, + secret_key, + session_token.map(|s| s.to_string()), + None, + PROVIDER_NAME, + )) +} + +#[cfg(test)] +mod tests { + use crate::profile::credentials::repr::{resolve_chain, BaseProvider, ProfileChain}; + use crate::profile::ProfileSet; + use serde::Deserialize; + use std::collections::HashMap; + use std::error::Error; + use std::fs; + + #[test] + fn run_test_cases() -> Result<(), Box> { + let test_cases: Vec = + serde_json::from_str(&fs::read_to_string("./test-data/assume-role-tests.json")?)?; + for test_case in test_cases { + print!("checking: {}...", test_case.docs); + check(test_case); + println!("ok") + } + Ok(()) + } + + fn check(test_case: TestCase) { + let source = ProfileSet::new(test_case.input.profile, test_case.input.selected_profile); + let actual = resolve_chain(&source, None); + let expected = test_case.output; + match (expected, actual) { + (TestOutput::Error(s), Err(e)) => assert!( + format!("{}", e).contains(&s), + "expected\n{}\nto contain\n{}\n", + e, + s + ), + (TestOutput::ProfileChain(expected), Ok(actual)) => { + assert_eq!(to_test_output(actual), expected) + } + (expected, actual) => panic!( + "error/success mismatch. Expected:\n {:?}\nActual:\n {:?}", + &expected, actual + ), + } + } + + #[derive(Deserialize)] + struct TestCase { + docs: String, + input: TestInput, + output: TestOutput, + } + + #[derive(Deserialize)] + struct TestInput { + profile: HashMap>, + selected_profile: String, + } + + fn to_test_output(profile_chain: ProfileChain) -> Vec { + let mut output = vec![]; + match profile_chain.base { + BaseProvider::NamedSource(name) => output.push(Provider::NamedSource(name.into())), + BaseProvider::AccessKey(creds) => output.push(Provider::AccessKey { + access_key_id: creds.access_key_id().into(), + secret_access_key: creds.secret_access_key().into(), + session_token: creds.session_token().map(|tok| tok.to_string()), + }), + BaseProvider::WebIdentityTokenRole { + role_arn, + web_identity_token_file, + session_name, + } => output.push(Provider::WebIdentityToken { + role_arn: role_arn.into(), + web_identity_token_file: web_identity_token_file.into(), + role_session_name: session_name.map(|sess| sess.to_string()), + }), + BaseProvider::Sso { + sso_account_id, + sso_region, + sso_role_name, + sso_start_url, + } => output.push(Provider::Sso { + sso_account_id: sso_account_id.into(), + sso_region: sso_region.into(), + sso_role_name: sso_role_name.into(), + sso_start_url: sso_start_url.into(), + }), + }; + for role in profile_chain.chain { + output.push(Provider::AssumeRole { + role_arn: role.role_arn.into(), + external_id: role.external_id.map(ToString::to_string), + role_session_name: role.session_name.map(ToString::to_string), + }) + } + output + } + + #[derive(Deserialize, Debug, PartialEq, Eq)] + enum TestOutput { + ProfileChain(Vec), + Error(String), + } + + #[derive(Deserialize, Debug, Eq, PartialEq)] + enum Provider { + AssumeRole { + role_arn: String, + external_id: Option, + role_session_name: Option, + }, + AccessKey { + access_key_id: String, + secret_access_key: String, + session_token: Option, + }, + NamedSource(String), + WebIdentityToken { + role_arn: String, + web_identity_token_file: String, + role_session_name: Option, + }, + Sso { + sso_account_id: String, + sso_region: String, + sso_role_name: String, + sso_start_url: String, + }, + } +} diff --git a/patch/aws-config/src/profile/mod.rs b/patch/aws-config/src/profile/mod.rs new file mode 100644 index 0000000000000..fc7cb666ff3e6 --- /dev/null +++ b/patch/aws-config/src/profile/mod.rs @@ -0,0 +1,24 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load configuration from AWS Profiles +//! +//! AWS profiles are typically stored in `~/.aws/config` and `~/.aws/credentials`. For more details +//! see the [`load`](parser::load) function. + +mod parser; +#[doc(inline)] +pub use parser::{load, Profile, ProfileParseError, ProfileSet, Property}; + +pub mod app_name; +pub mod credentials; +pub mod region; +pub mod retry_config; +pub mod timeout_config; + +#[doc(inline)] +pub use credentials::ProfileFileCredentialsProvider; +#[doc(inline)] +pub use region::ProfileFileRegionProvider; diff --git a/patch/aws-config/src/profile/parser.rs b/patch/aws-config/src/profile/parser.rs new file mode 100644 index 0000000000000..df282565f277a --- /dev/null +++ b/patch/aws-config/src/profile/parser.rs @@ -0,0 +1,387 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +mod normalize; +mod parse; +mod source; + +use crate::profile::parser::parse::parse_profile_file; +use crate::profile::parser::source::{FileKind, Source}; +use aws_types::os_shim_internal::{Env, Fs}; +use std::borrow::Cow; +use std::collections::HashMap; + +pub use self::parse::ProfileParseError; + +/// Read & parse AWS config files +/// +/// Loads AWS config file from the filesystem, parses them, and converts them into a [`ProfileSet`](ProfileSet). +/// +/// Although the basic behavior is straightforward, there are number of nuances to maintain backwards +/// compatibility with other SDKs enumerated below. +/// +/// ## Location of Profile Files +/// * The location of the config file will be loaded from the `AWS_CONFIG_FILE` environment variable +/// with a fallback to `~/.aws/config` +/// * The location of the credentials file will be loaded from the `AWS_SHARED_CREDENTIALS_FILE` +/// environment variable with a fallback to `~/.aws/credentials` +/// +/// ## Home directory resolution +/// Home directory resolution is implemented to match the behavior of the CLI & Python. `~` is only +/// used for home directory resolution when it: +/// - Starts the path +/// - Is followed immediately by `/` or a platform specific separator. (On windows, `~/` and `~\` both +/// resolve to the home directory. +/// +/// When determining the home directory, the following environment variables are checked: +/// - `HOME` on all platforms +/// - `USERPROFILE` on Windows +/// - The concatenation of `HOMEDRIVE` and `HOMEPATH` on Windows (`$HOMEDRIVE$HOMEPATH`) +/// +/// ## Profile file syntax +/// +/// Profile files have a form similar to `.ini` but with a several edge cases. These behaviors exist +/// to match existing parser implementations, ensuring consistent behavior across AWS SDKs. These +/// cases fully enumerated in `test-data/profile-parser-tests.json`. +/// +/// ### The config file `~/.aws/config` +/// ```ini +/// # ~/.aws/config +/// [profile default] +/// key = value +/// +/// # profiles must begin with `profile` +/// [profile other] +/// key = value2 +/// ``` +/// +/// ### The credentials file `~/.aws/credentials` +/// The main difference is that in ~/.aws/credentials, profiles MUST NOT be prefixed with profile: +/// ```ini +/// [default] +/// aws_access_key_id = 123 +/// +/// [other] +/// aws_access_key_id = 456 +/// ``` +pub async fn load(fs: &Fs, env: &Env) -> Result { + let source = source::load(env, fs).await; + ProfileSet::parse(source) +} + +/// A top-level configuration source containing multiple named profiles +#[derive(Debug, Eq, Clone, PartialEq)] +pub struct ProfileSet { + profiles: HashMap, + selected_profile: Cow<'static, str>, +} + +impl ProfileSet { + #[doc(hidden)] + /// Create a new Profile set directly from a HashMap + /// + /// This method creates a ProfileSet directly from a hashmap with no normalization. + /// + /// ## Warning + /// + /// This is probably not what you want! In general, [`load`](load) should be used instead + /// because it will perform input normalization. However, for tests which operate on the + /// normalized profile, this method exists to facilitate easy construction of a ProfileSet + pub fn new( + profiles: HashMap>, + selected_profile: impl Into>, + ) -> Self { + let mut base = ProfileSet::empty(); + base.selected_profile = selected_profile.into(); + for (name, profile) in profiles { + base.profiles.insert( + name.clone(), + Profile::new( + name, + profile + .into_iter() + .map(|(k, v)| (k.clone(), Property::new(k, v))) + .collect(), + ), + ); + } + base + } + + /// Retrieves a key-value pair from the currently selected profile + pub fn get(&self, key: &str) -> Option<&str> { + self.profiles + .get(self.selected_profile.as_ref()) + .and_then(|profile| profile.get(key)) + } + + /// Retrieves a named profile from the profile set + pub fn get_profile(&self, profile_name: &str) -> Option<&Profile> { + self.profiles.get(profile_name) + } + + /// Returns the name of the currently selected profile + pub fn selected_profile(&self) -> &str { + self.selected_profile.as_ref() + } + + /// Returns true if no profiles are contained in this profile set + pub fn is_empty(&self) -> bool { + self.profiles.is_empty() + } + + /// Returns the names of the profiles in this profile set + pub fn profiles(&self) -> impl Iterator { + self.profiles.keys().map(String::as_ref) + } + + fn parse(source: Source) -> Result { + let mut base = ProfileSet::empty(); + base.selected_profile = source.profile; + + normalize::merge_in( + &mut base, + parse_profile_file(&source.config_file)?, + FileKind::Config, + ); + normalize::merge_in( + &mut base, + parse_profile_file(&source.credentials_file)?, + FileKind::Credentials, + ); + Ok(base) + } + + fn empty() -> Self { + Self { + profiles: Default::default(), + selected_profile: "default".into(), + } + } +} + +/// An individual configuration profile +/// +/// An AWS config may be composed of a multiple named profiles within a [`ProfileSet`](ProfileSet) +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct Profile { + name: String, + properties: HashMap, +} + +impl Profile { + /// Create a new profile + pub fn new(name: String, properties: HashMap) -> Self { + Self { name, properties } + } + + /// The name of this profile + pub fn name(&self) -> &str { + &self.name + } + + /// Returns a reference to the property named `name` + pub fn get(&self, name: &str) -> Option<&str> { + self.properties.get(name).map(|prop| prop.value()) + } +} + +/// Key-Value property pair +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct Property { + key: String, + value: String, +} + +impl Property { + /// Value of this property + pub fn value(&self) -> &str { + &self.value + } + + /// Name of this property + pub fn key(&self) -> &str { + &self.key + } + + /// Creates a new property + pub fn new(key: String, value: String) -> Self { + Property { key, value } + } +} + +#[cfg(test)] +mod test { + use crate::profile::parser::source::{File, Source}; + use crate::profile::ProfileSet; + use arbitrary::{Arbitrary, Unstructured}; + use serde::Deserialize; + use std::collections::HashMap; + use std::error::Error; + use std::fs; + use tracing_test::traced_test; + + /// Run all tests from `test-data/profile-parser-tests.json` + /// + /// These represent the bulk of the test cases and reach 100% coverage of the parser. + #[test] + #[traced_test] + fn run_tests() -> Result<(), Box> { + let tests = fs::read_to_string("test-data/profile-parser-tests.json")?; + let tests: ParserTests = serde_json::from_str(&tests)?; + for (i, test) in tests.tests.into_iter().enumerate() { + eprintln!("test: {}", i); + check(test); + } + Ok(()) + } + + #[test] + fn empty_source_empty_profile() { + let source = make_source(ParserInput { + config_file: Some("".to_string()), + credentials_file: Some("".to_string()), + }); + + let profile_set = ProfileSet::parse(source).expect("empty profiles are valid"); + assert!(profile_set.is_empty()); + } + + #[test] + fn profile_names_are_exposed() { + let source = make_source(ParserInput { + config_file: Some("[profile foo]\n[profile bar]".to_string()), + credentials_file: Some("".to_string()), + }); + + let profile_set = ProfileSet::parse(source).expect("profiles loaded"); + + let mut profile_names: Vec<_> = profile_set.profiles().collect(); + profile_names.sort(); + assert_eq!(profile_names, vec!["bar", "foo"]); + } + + /// Run all tests from the fuzzing corpus to validate coverage + #[test] + #[ignore] + fn run_fuzz_tests() -> Result<(), Box> { + let fuzz_corpus = fs::read_dir("fuzz/corpus/profile-parser")? + .map(|res| res.map(|entry| entry.path())) + .collect::, _>>()?; + for file in fuzz_corpus { + let raw = fs::read(file)?; + let mut unstructured = Unstructured::new(&raw); + let (conf, creds): (Option<&str>, Option<&str>) = + Arbitrary::arbitrary(&mut unstructured)?; + let profile_source = Source { + config_file: File { + path: "~/.aws/config".to_string(), + contents: conf.unwrap_or_default().to_string(), + }, + credentials_file: File { + path: "~/.aws/config".to_string(), + contents: creds.unwrap_or_default().to_string(), + }, + profile: "default".into(), + }; + // don't care if parse fails, just don't panic + let _ = ProfileSet::parse(profile_source); + } + + Ok(()) + } + + // for test comparison purposes, flatten a profile into a hashmap + fn flatten(profile: ProfileSet) -> HashMap> { + profile + .profiles + .into_iter() + .map(|(_name, profile)| { + ( + profile.name, + profile + .properties + .into_iter() + .map(|(_, prop)| (prop.key, prop.value)) + .collect(), + ) + }) + .collect() + } + + fn make_source(input: ParserInput) -> Source { + Source { + config_file: File { + path: "~/.aws/config".to_string(), + contents: input.config_file.unwrap_or_default(), + }, + credentials_file: File { + path: "~/.aws/credentials".to_string(), + contents: input.credentials_file.unwrap_or_default(), + }, + profile: "default".into(), + } + } + + // wrapper to generate nicer errors during test failure + fn check(test_case: ParserTest) { + let copy = test_case.clone(); + let parsed = ProfileSet::parse(make_source(test_case.input)); + let res = match (parsed.map(flatten), &test_case.output) { + (Ok(actual), ParserOutput::Profiles(expected)) if &actual != expected => Err(format!( + "mismatch:\nExpected: {:#?}\nActual: {:#?}", + expected, actual + )), + (Ok(_), ParserOutput::Profiles(_)) => Ok(()), + (Err(msg), ParserOutput::ErrorContaining(substr)) => { + if format!("{}", msg).contains(substr) { + Ok(()) + } else { + Err(format!("Expected {} to contain {}", msg, substr)) + } + } + (Ok(output), ParserOutput::ErrorContaining(err)) => Err(format!( + "expected an error: {} but parse succeeded:\n{:#?}", + err, output + )), + (Err(err), ParserOutput::Profiles(_expected)) => { + Err(format!("Expected to succeed but got: {}", err)) + } + }; + if let Err(e) = res { + eprintln!("Test case failed: {:#?}", copy); + eprintln!("failure: {}", e); + panic!("test failed") + } + } + + #[derive(Deserialize, Debug)] + #[serde(rename_all = "camelCase")] + struct ParserTests { + tests: Vec, + } + + #[derive(Deserialize, Debug, Clone)] + #[serde(rename_all = "camelCase")] + struct ParserTest { + _name: String, + input: ParserInput, + output: ParserOutput, + } + + #[derive(Deserialize, Debug, Clone)] + #[serde(rename_all = "camelCase")] + enum ParserOutput { + Profiles(HashMap>), + ErrorContaining(String), + } + + #[derive(Deserialize, Debug, Clone)] + #[serde(rename_all = "camelCase")] + struct ParserInput { + config_file: Option, + credentials_file: Option, + } +} diff --git a/patch/aws-config/src/profile/parser/normalize.rs b/patch/aws-config/src/profile/parser/normalize.rs new file mode 100644 index 0000000000000..4ccd9d5de12b8 --- /dev/null +++ b/patch/aws-config/src/profile/parser/normalize.rs @@ -0,0 +1,241 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::borrow::Cow; +use std::collections::HashMap; + +use crate::profile::parser::parse::{RawProfileSet, WHITESPACE}; +use crate::profile::parser::source::FileKind; +use crate::profile::{Profile, ProfileSet, Property}; + +const DEFAULT: &str = "default"; +const PROFILE_PREFIX: &str = "profile"; + +#[derive(Eq, PartialEq, Hash, Debug)] +struct ProfileName<'a> { + name: &'a str, + has_profile_prefix: bool, +} + +impl ProfileName<'_> { + fn parse(input: &str) -> ProfileName { + let input = input.trim_matches(WHITESPACE); + let (name, has_profile_prefix) = match input.strip_prefix(PROFILE_PREFIX) { + // profilefoo isn't considered as having the profile prefix + Some(stripped) if stripped.starts_with(WHITESPACE) => (stripped.trim(), true), + _ => (input, false), + }; + ProfileName { + name, + has_profile_prefix, + } + } + + /// Validate a ProfileName for a given file key + /// + /// 1. `name` must ALWAYS be a valid identifier + /// 2. For Config files, the profile must either be `default` or it must have a profile prefix + /// 3. For credentials files, the profile name MUST NOT have a profile prefix + fn valid_for(self, kind: FileKind) -> Result { + if validate_identifier(self.name).is_err() { + return Err(format!( + "profile `{}` ignored because `{}` was not a valid identifier", + &self.name, &self.name + )); + } + match (self.name, kind, self.has_profile_prefix) { + (_, FileKind::Config, true) => Ok(self), + (DEFAULT, FileKind::Config, false) => Ok(self), + (_not_default, FileKind::Config, false) => Err(format!( + "profile `{}` ignored because config profiles must be of the form `[profile ]`", + self.name + )), + (_, FileKind::Credentials, true) => Err(format!( + "profile `{}` ignored because credential profiles must NOT begin with `profile`", + self.name + )), + (_, FileKind::Credentials, false) => Ok(self), + } + } +} + +/// Normalize a raw profile into a `MergedProfile` +/// +/// This function follows the following rules, codified in the tests & the reference Java implementation +/// - When the profile is a config file, strip `profile` and trim whitespace (`profile foo` => `foo`) +/// - Profile names are validated (see `validate_profile_name`) +/// - A profile named `profile default` takes priority over a profile named `default`. +/// - Profiles with identical names are merged +pub fn merge_in(base: &mut ProfileSet, raw_profile_set: RawProfileSet, kind: FileKind) { + // parse / validate profile names + let validated_profiles = raw_profile_set + .into_iter() + .map(|(name, profile)| (ProfileName::parse(name).valid_for(kind), profile)); + + // remove invalid profiles & emit warning + // valid_profiles contains only valid profiles but it may contain `[profile default]` and `[default]` + // which must be filtered later + let valid_profiles = validated_profiles + .filter_map(|(name, profile)| match name { + Ok(profile_name) => Some((profile_name, profile)), + Err(e) => { + tracing::warn!("{}", e); + None + } + }) + .collect::>(); + // if a `[profile default]` exists then we should ignore `[default]` + let ignore_unprefixed_default = valid_profiles + .iter() + .any(|(profile, _)| profile.name == DEFAULT && profile.has_profile_prefix); + + for (profile_name, raw_profile) in valid_profiles { + // When normalizing profiles, profiles should be merged. However, `[profile default]` and + // `[default]` are considered two separate profiles. Furthermore, `[profile default]` fully + // replaces any contents of `[default]`! + if ignore_unprefixed_default + && profile_name.name == DEFAULT + && !profile_name.has_profile_prefix + { + tracing::warn!("profile `default` ignored because `[profile default]` was found which takes priority"); + continue; + } + let profile = base + .profiles + .entry(profile_name.name.to_string()) + .or_insert_with(|| Profile::new(profile_name.name.to_string(), Default::default())); + merge_into_base(profile, raw_profile) + } +} + +fn merge_into_base<'a>(target: &mut Profile, profile: HashMap<&str, Cow<'a, str>>) { + for (k, v) in profile { + match validate_identifier(k) { + Ok(k) => { + target + .properties + .insert(k.to_owned(), Property::new(k.to_owned(), v.into())); + } + Err(_) => { + tracing::warn!(profile = %&target.name, key = ?k, "key ignored because `{}` was not a valid identifier", k); + } + } + } +} + +/// Validate that a string is a valid identifier +/// +/// Identifiers must match `[A-Za-z0-9_\-/.%@:\+]+` +fn validate_identifier(input: &str) -> Result<&str, ()> { + input + .chars() + .all(|ch| { + ch.is_ascii_alphanumeric() + || ['_', '-', '/', '.', '%', '@', ':', '+'] + .iter() + .any(|c| *c == ch) + }) + .then(|| input) + .ok_or(()) +} + +#[cfg(test)] +mod tests { + use std::collections::HashMap; + + use tracing_test::traced_test; + + use crate::profile::parser::parse::RawProfileSet; + use crate::profile::parser::source::FileKind; + use crate::profile::ProfileSet; + + use super::{merge_in, ProfileName}; + use crate::profile::parser::normalize::validate_identifier; + + #[test] + fn profile_name_parsing() { + assert_eq!( + ProfileName::parse("profile name"), + ProfileName { + name: "name", + has_profile_prefix: true + } + ); + assert_eq!( + ProfileName::parse("name"), + ProfileName { + name: "name", + has_profile_prefix: false + } + ); + assert_eq!( + ProfileName::parse("profile\tname"), + ProfileName { + name: "name", + has_profile_prefix: true + } + ); + assert_eq!( + ProfileName::parse("profile name "), + ProfileName { + name: "name", + has_profile_prefix: true + } + ); + assert_eq!( + ProfileName::parse("profilename"), + ProfileName { + name: "profilename", + has_profile_prefix: false + } + ); + assert_eq!( + ProfileName::parse(" whitespace "), + ProfileName { + name: "whitespace", + has_profile_prefix: false + } + ); + } + + #[test] + fn test_validate_identifier() { + assert_eq!( + Ok("some-thing:long/the_one%only.foo@bar+"), + validate_identifier("some-thing:long/the_one%only.foo@bar+") + ); + assert_eq!(Err(()), validate_identifier("foo!bar")); + } + + #[test] + #[traced_test] + fn ignored_key_generates_warning() { + let mut profile: RawProfileSet = HashMap::new(); + profile.insert("default", { + let mut out = HashMap::new(); + out.insert("invalid key", "value".into()); + out + }); + let mut base = ProfileSet::empty(); + merge_in(&mut base, profile, FileKind::Config); + assert!(base + .get_profile("default") + .expect("contains default profile") + .properties + .is_empty()); + assert!(logs_contain( + "key ignored because `invalid key` was not a valid identifier" + )); + } + + #[test] + #[traced_test] + fn invalid_profile_generates_warning() { + let mut profile: RawProfileSet = HashMap::new(); + profile.insert("foo", HashMap::new()); + merge_in(&mut ProfileSet::empty(), profile, FileKind::Config); + assert!(logs_contain("profile `foo` ignored")); + } +} diff --git a/patch/aws-config/src/profile/parser/parse.rs b/patch/aws-config/src/profile/parser/parse.rs new file mode 100644 index 0000000000000..bb4fccd6eb99e --- /dev/null +++ b/patch/aws-config/src/profile/parser/parse.rs @@ -0,0 +1,346 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Profile file parsing +//! +//! This file implements profile file parsing at a very literal level. Prior to actually being used, +//! profiles must be normalized into a canonical form. Constructions that will eventually be +//! deemed invalid are accepted during parsing such as: +//! - keys that are invalid identifiers: `a b = c` +//! - profiles with invalid names +//! - profile name normalization (`profile foo` => `foo`) + +use crate::profile::parser::source::File; +use std::borrow::Cow; +use std::collections::HashMap; +use std::error::Error; +use std::fmt::{self, Display, Formatter}; + +/// A set of profiles that still carries a reference to the underlying data +pub type RawProfileSet<'a> = HashMap<&'a str, HashMap<&'a str, Cow<'a, str>>>; + +/// Characters considered to be whitespace by the spec +/// +/// Profile parsing is actually quite strict about what is and is not whitespace, so use this instead +/// of `.is_whitespace()` / `.trim()` +pub const WHITESPACE: &[char] = &[' ', '\t']; +const COMMENT: &[char] = &['#', ';']; + +/// Location for use during error reporting +#[derive(Clone, Debug, Eq, PartialEq)] +struct Location { + line_number: usize, + path: String, +} + +/// An error encountered while parsing a profile +#[derive(Debug, Clone)] +pub struct ProfileParseError { + /// Location where this error occurred + location: Location, + + /// Error message + message: String, +} + +impl Display for ProfileParseError { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + write!( + f, + "error parsing {} on line {}:\n {}", + self.location.path, self.location.line_number, self.message + ) + } +} + +impl Error for ProfileParseError {} + +/// Validate that a line represents a valid subproperty +/// +/// - Subproperties looks like regular properties (`k=v`) that are nested within an existing property. +/// - Subproperties must be validated for compatibility with other SDKs, but they are not actually +/// parsed into structured data. +fn validate_subproperty(value: &str, location: Location) -> Result<(), ProfileParseError> { + if value.trim_matches(WHITESPACE).is_empty() { + Ok(()) + } else { + parse_property_line(value) + .map_err(|err| err.into_error("sub-property", location)) + .map(|_| ()) + } +} + +fn is_empty_line(line: &str) -> bool { + line.trim_matches(WHITESPACE).is_empty() +} + +fn is_comment_line(line: &str) -> bool { + line.starts_with(COMMENT) +} + +/// Parser for profile files +struct Parser<'a> { + /// In-progress profile representation + data: RawProfileSet<'a>, + + /// Parser state + state: State<'a>, + + /// Parser source location + /// + /// Location is tracked to facilitate error reporting + location: Location, +} + +enum State<'a> { + Starting, + ReadingProfile { + profile: &'a str, + property: Option<&'a str>, + is_subproperty: bool, + }, +} + +/// Parse `file` into a `RawProfileSet` +pub fn parse_profile_file(file: &File) -> Result { + let mut parser = Parser { + data: HashMap::new(), + state: State::Starting, + location: Location { + line_number: 0, + path: file.path.to_string(), + }, + }; + parser.parse_profile(&file.contents)?; + Ok(parser.data) +} + +impl<'a> Parser<'a> { + /// Parse `file` containing profile data into `self.data`. + fn parse_profile(&mut self, file: &'a str) -> Result<(), ProfileParseError> { + for (line_number, line) in file.lines().enumerate() { + self.location.line_number = line_number + 1; // store a 1-indexed line number + if is_empty_line(line) || is_comment_line(line) { + continue; + } + if line.starts_with('[') { + self.read_profile_line(line)?; + } else if line.starts_with(WHITESPACE) { + self.read_property_continuation(line)?; + } else { + self.read_property_line(line)?; + } + } + Ok(()) + } + + /// Parse a property line like `a = b` + /// + /// A property line is only valid when we're within a profile definition, `[profile foo]` + fn read_property_line(&mut self, line: &'a str) -> Result<(), ProfileParseError> { + let location = &self.location; + let (current_profile, name) = match &self.state { + State::Starting => return Err(self.make_error("Expected a profile definition")), + State::ReadingProfile { profile, .. } => ( + self.data.get_mut(*profile).expect("profile must exist"), + profile, + ), + }; + let (k, v) = parse_property_line(line) + .map_err(|err| err.into_error("property", location.clone()))?; + self.state = State::ReadingProfile { + profile: name, + property: Some(k), + is_subproperty: v.is_empty(), + }; + current_profile.insert(k, v.into()); + Ok(()) + } + + /// Create a location-tagged error message + fn make_error(&self, message: &str) -> ProfileParseError { + ProfileParseError { + location: self.location.clone(), + message: message.into(), + } + } + + /// Parse the lines of a property after the first line. + /// + /// This is triggered by lines that start with whitespace. + fn read_property_continuation(&mut self, line: &'a str) -> Result<(), ProfileParseError> { + let current_property = match &self.state { + State::Starting => return Err(self.make_error("Expected a profile definition")), + State::ReadingProfile { + profile, + property: Some(property), + is_subproperty, + } => { + if *is_subproperty { + validate_subproperty(line, self.location.clone())?; + } + self.data + .get_mut(*profile) + .expect("profile must exist") + .get_mut(*property) + .expect("property must exist") + } + State::ReadingProfile { + profile: _, + property: None, + .. + } => return Err(self.make_error("Expected a property definition, found continuation")), + }; + let line = line.trim_matches(WHITESPACE); + let current_property = current_property.to_mut(); + current_property.push('\n'); + current_property.push_str(line); + Ok(()) + } + + fn read_profile_line(&mut self, line: &'a str) -> Result<(), ProfileParseError> { + let line = prepare_line(line, false); + let profile_name = line + .strip_prefix('[') + .ok_or_else(|| self.make_error("Profile definition must start with ]"))? + .strip_suffix(']') + .ok_or_else(|| self.make_error("Profile definition must end with ']'"))?; + if !self.data.contains_key(profile_name) { + self.data.insert(profile_name, Default::default()); + } + self.state = State::ReadingProfile { + profile: profile_name, + property: None, + is_subproperty: false, + }; + Ok(()) + } +} + +/// Error encountered while parsing a property +#[derive(Debug, Eq, PartialEq)] +enum PropertyError { + NoEquals, + NoName, +} + +impl PropertyError { + fn into_error(self, ctx: &str, location: Location) -> ProfileParseError { + let mut ctx = ctx.to_string(); + match self { + PropertyError::NoName => { + ctx.get_mut(0..1).unwrap().make_ascii_uppercase(); + ProfileParseError { + location, + message: format!("{} did not have a name", ctx), + } + } + PropertyError::NoEquals => ProfileParseError { + location, + message: format!("Expected an '=' sign defining a {}", ctx), + }, + } + } +} + +/// Parse a property line into a key-value pair +fn parse_property_line(line: &str) -> Result<(&str, &str), PropertyError> { + let line = prepare_line(line, true); + let (k, v) = line.split_once('=').ok_or(PropertyError::NoEquals)?; + let k = k.trim_matches(WHITESPACE); + let v = v.trim_matches(WHITESPACE); + if k.is_empty() { + return Err(PropertyError::NoName); + } + Ok((k, v)) +} + +/// Prepare a line for parsing +/// +/// Because leading whitespace is significant, this method should only be called after determining +/// whether a line represents a property (no whitespace) or a sub-property (whitespace). +/// This function preprocesses a line to simplify parsing: +/// 1. Strip leading and trailing whitespace +/// 2. Remove trailing comments +/// +/// Depending on context, comment characters may need to be preceded by whitespace to be considered +/// comments. +fn prepare_line(line: &str, comments_need_whitespace: bool) -> &str { + let line = line.trim_matches(WHITESPACE); + let mut prev_char_whitespace = false; + let mut comment_idx = None; + for (idx, chr) in line.char_indices() { + if (COMMENT.contains(&chr)) && (prev_char_whitespace || !comments_need_whitespace) { + comment_idx = Some(idx); + break; + } + prev_char_whitespace = chr.is_whitespace(); + } + comment_idx + .map(|idx| &line[..idx]) + .unwrap_or(line) + // trimming the comment might result in more whitespace that needs to be handled + .trim_matches(WHITESPACE) +} + +#[cfg(test)] +mod test { + use super::{parse_profile_file, prepare_line, Location}; + use crate::profile::parser::parse::{parse_property_line, PropertyError}; + use crate::profile::parser::source::File; + + // most test cases covered by the JSON test suite + + #[test] + fn property_parsing() { + assert_eq!(parse_property_line("a = b"), Ok(("a", "b"))); + assert_eq!(parse_property_line("a=b"), Ok(("a", "b"))); + assert_eq!(parse_property_line("a = b "), Ok(("a", "b"))); + assert_eq!(parse_property_line(" a = b "), Ok(("a", "b"))); + assert_eq!(parse_property_line(" a = b 🐱 "), Ok(("a", "b 🐱"))); + assert_eq!(parse_property_line("a b"), Err(PropertyError::NoEquals)); + assert_eq!(parse_property_line("= b"), Err(PropertyError::NoName)); + assert_eq!(parse_property_line("a = "), Ok(("a", ""))); + assert_eq!( + parse_property_line("something_base64=aGVsbG8gZW50aHVzaWFzdGljIHJlYWRlcg=="), + Ok(("something_base64", "aGVsbG8gZW50aHVzaWFzdGljIHJlYWRlcg==")) + ); + } + + #[test] + fn prepare_line_strips_comments() { + assert_eq!( + prepare_line("name = value # Comment with # sign", true), + "name = value" + ); + + assert_eq!( + prepare_line("name = value#Comment # sign", true), + "name = value#Comment" + ); + + assert_eq!( + prepare_line("name = value#Comment # sign", false), + "name = value" + ); + } + + #[test] + fn error_line_numbers() { + let file = File { + path: "~/.aws/config".into(), + contents: "[default\nk=v".into(), + }; + let err = parse_profile_file(&file).expect_err("parsing should fail"); + assert_eq!(err.message, "Profile definition must end with ']'"); + assert_eq!( + err.location, + Location { + path: "~/.aws/config".into(), + line_number: 1 + } + ) + } +} diff --git a/patch/aws-config/src/profile/parser/source.rs b/patch/aws-config/src/profile/parser/source.rs new file mode 100644 index 0000000000000..8bfcfb4584090 --- /dev/null +++ b/patch/aws-config/src/profile/parser/source.rs @@ -0,0 +1,349 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use crate::fs_util::{home_dir, Os}; +use aws_types::os_shim_internal; +use std::borrow::Cow; +use std::io::ErrorKind; +use std::path::{Component, Path, PathBuf}; +use tracing::Instrument; + +/// In-memory source of profile data +pub struct Source { + /// Contents and path of ~/.aws/config + pub config_file: File, + + /// Contents and path of ~/.aws/credentials + pub credentials_file: File, + + /// Profile to use + /// + /// Overridden via `$AWS_PROFILE`, defaults to `default` + pub profile: Cow<'static, str>, +} + +/// In-memory configuration file +pub struct File { + pub path: String, + pub contents: String, +} + +#[derive(Clone, Copy)] +pub enum FileKind { + Config, + Credentials, +} + +impl FileKind { + fn default_path(&self) -> &'static str { + match &self { + FileKind::Credentials => "~/.aws/credentials", + FileKind::Config => "~/.aws/config", + } + } + + fn override_environment_variable(&self) -> &'static str { + match &self { + FileKind::Config => "AWS_CONFIG_FILE", + FileKind::Credentials => "AWS_SHARED_CREDENTIALS_FILE", + } + } +} + +/// Load a [Source](Source) from a given environment and filesystem. +pub async fn load(proc_env: &os_shim_internal::Env, fs: &os_shim_internal::Fs) -> Source { + let home = home_dir(proc_env, Os::real()); + let config = load_config_file(FileKind::Config, &home, fs, proc_env) + .instrument(tracing::debug_span!("load_config_file")) + .await; + let credentials = load_config_file(FileKind::Credentials, &home, fs, proc_env) + .instrument(tracing::debug_span!("load_credentials_file")) + .await; + + Source { + config_file: config, + credentials_file: credentials, + profile: proc_env + .get("AWS_PROFILE") + .map(Cow::Owned) + .unwrap_or(Cow::Borrowed("default")), + } +} + +/// Loads an AWS Config file +/// +/// Both the default & the overriding patterns may contain `~/` which MUST be expanded to the users +/// home directory in a platform-aware way (see [`expand_home`](expand_home)) +/// +/// Arguments: +/// * `kind`: The type of config file to load +/// * `home_directory`: Home directory to use during home directory expansion +/// * `fs`: Filesystem abstraction +/// * `environment`: Process environment abstraction +async fn load_config_file( + kind: FileKind, + home_directory: &Option, + fs: &os_shim_internal::Fs, + environment: &os_shim_internal::Env, +) -> File { + let path = environment + .get(kind.override_environment_variable()) + .map(Cow::Owned) + .ok() + .unwrap_or_else(|| kind.default_path().into()); + let expanded = expand_home(path.as_ref(), home_directory, environment); + if path != expanded.to_string_lossy() { + tracing::debug!(before = ?path, after = ?expanded, "home directory expanded"); + } + // read the data at the specified path + // if the path does not exist, log a warning but pretend it was actually an empty file + let data = match fs.read_to_end(&expanded).await { + Ok(data) => data, + Err(e) => { + match e.kind() { + ErrorKind::NotFound if path == kind.default_path() => { + tracing::debug!(path = %path, "config file not found") + } + ErrorKind::NotFound if path != kind.default_path() => { + // in the case where the user overrode the path with an environment variable, + // log more loudly than the case where the default path was missing + tracing::warn!(path = %path, env = %kind.override_environment_variable(), "config file overridden via environment variable not found") + } + _other => tracing::warn!(path = %path, error = %e, "failed to read config file"), + }; + Default::default() + } + }; + // if the file is not valid utf-8, log a warning and use an empty file instead + let data = match String::from_utf8(data) { + Ok(data) => data, + Err(e) => { + tracing::warn!(path = %path, error = %e, "config file did not contain utf-8 encoded data"); + Default::default() + } + }; + tracing::debug!(path = %path, size = ?data.len(), "config file loaded"); + File { + // lossy is OK here, the name of this file is just for debugging purposes + path: expanded.to_string_lossy().into(), + contents: data, + } +} + +fn expand_home( + path: impl AsRef, + home_dir: &Option, + environment: &os_shim_internal::Env, +) -> PathBuf { + let path = path.as_ref(); + let mut components = path.components(); + let start = components.next(); + match start { + None => path.into(), // empty path, + Some(Component::Normal(s)) if s == "~" => { + // do homedir replacement + let path = match home_dir { + Some(dir) => { + tracing::debug!(home = ?dir, path = ?path, "performing home directory substitution"); + dir.clone() + } + None => { + // Lambdas don't have home directories and emitting this warning is not helpful + // to users running the SDK from within a Lambda. This warning will be silenced + // if we determine that that is the case. + let is_likely_running_on_a_lambda = + check_is_likely_running_on_a_lambda(environment); + if !is_likely_running_on_a_lambda { + tracing::warn!( + "could not determine home directory but home expansion was requested" + ); + } + // if we can't determine the home directory, just leave it as `~` + "~".into() + } + }; + let mut path: PathBuf = path.into(); + // rewrite the path using system-specific path separators + for component in components { + path.push(component); + } + path + } + // Finally, handle the case where it doesn't begin with some version of `~/`: + // NOTE: in this case we aren't performing path rewriting. This is correct because + // this path comes from an environment variable on the target + // platform, so in that case, the separators should already be correct. + _other => path.into(), + } +} + +/// Returns true or false based on whether or not this code is likely running inside an AWS Lambda. +/// [Lambdas set many environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime) +/// that we can check. +fn check_is_likely_running_on_a_lambda(environment: &aws_types::os_shim_internal::Env) -> bool { + // LAMBDA_TASK_ROOT – The path to your Lambda function code. + environment.get("LAMBDA_TASK_ROOT").is_ok() +} + +#[cfg(test)] +mod tests { + use crate::profile::parser::source::{expand_home, load, load_config_file, FileKind}; + use aws_types::os_shim_internal::{Env, Fs}; + use serde::Deserialize; + use std::collections::HashMap; + use std::error::Error; + use std::fs; + + #[test] + fn only_expand_home_prefix() { + // ~ is only expanded as a single component (currently) + let path = "~aws/config"; + let environment = Env::from_slice(&[]); + assert_eq!( + expand_home(&path, &None, &environment).to_str().unwrap(), + "~aws/config" + ); + } + + #[derive(Deserialize, Debug)] + #[serde(rename_all = "camelCase")] + struct SourceTests { + tests: Vec, + } + + #[derive(Deserialize, Debug)] + #[serde(rename_all = "camelCase")] + struct TestCase { + name: String, + environment: HashMap, + platform: String, + profile: Option, + config_location: String, + credentials_location: String, + } + + /// Run all tests from file-location-tests.json + #[test] + fn run_tests() -> Result<(), Box> { + let tests = fs::read_to_string("test-data/file-location-tests.json")?; + let tests: SourceTests = serde_json::from_str(&tests)?; + for (i, test) in tests.tests.into_iter().enumerate() { + eprintln!("test: {}", i); + check(test) + .now_or_never() + .expect("these futures should never poll"); + } + Ok(()) + } + + use futures_util::FutureExt; + use tracing_test::traced_test; + + #[traced_test] + #[test] + fn logs_produced_default() { + let env = Env::from_slice(&[("HOME", "/user/name")]); + let mut fs = HashMap::new(); + fs.insert( + "/user/name/.aws/config".to_string(), + "[default]\nregion = us-east-1", + ); + + let fs = Fs::from_map(fs); + + let _src = load(&env, &fs).now_or_never(); + assert!(logs_contain("config file loaded")); + assert!(logs_contain("performing home directory substitution")); + } + + #[traced_test] + #[test] + fn load_config_file_should_not_emit_warning_on_lambda() { + let env = Env::from_slice(&[("LAMBDA_TASK_ROOT", "/")]); + let fs = Fs::from_slice(&[]); + + let _src = load_config_file(FileKind::Config, &None, &fs, &env).now_or_never(); + assert!(!logs_contain( + "could not determine home directory but home expansion was requested" + )); + } + + async fn check(test_case: TestCase) { + let fs = Fs::real(); + let env = Env::from(test_case.environment); + let platform_matches = (cfg!(windows) && test_case.platform == "windows") + || (!cfg!(windows) && test_case.platform != "windows"); + if platform_matches { + let source = load(&env, &fs).await; + if let Some(expected_profile) = test_case.profile { + assert_eq!(source.profile, expected_profile, "{}", &test_case.name); + } + assert_eq!( + source.config_file.path, test_case.config_location, + "{}", + &test_case.name + ); + assert_eq!( + source.credentials_file.path, test_case.credentials_location, + "{}", + &test_case.name + ) + } else { + println!( + "NOTE: ignoring test case for {} which does not apply to our platform: \n {}", + &test_case.platform, &test_case.name + ) + } + } + + #[test] + #[cfg_attr(windows, ignore)] + fn test_expand_home() { + let path = "~/.aws/config"; + let environment = Env::from_slice(&[]); + assert_eq!( + expand_home(&path, &Some("/user/foo".to_string()), &environment) + .to_str() + .unwrap(), + "/user/foo/.aws/config" + ); + } + + #[test] + fn expand_home_no_home() { + let environment = Env::from_slice(&[]); + // there is an edge case around expansion when no home directory exists + // if no home directory can be determined, leave the path as is + if !cfg!(windows) { + assert_eq!( + expand_home("~/config", &None, &environment) + .to_str() + .unwrap(), + "~/config" + ) + } else { + assert_eq!( + expand_home("~/config", &None, &environment) + .to_str() + .unwrap(), + "~\\config" + ) + } + } + + /// Test that a linux oriented path expands on windows + #[test] + #[cfg_attr(not(windows), ignore)] + fn test_expand_home_windows() { + let path = "~/.aws/config"; + let environment = Env::from_slice(&[]); + assert_eq!( + expand_home(&path, &Some("C:\\Users\\name".to_string()), &environment) + .to_str() + .unwrap(), + "C:\\Users\\name\\.aws\\config" + ); + } +} diff --git a/patch/aws-config/src/profile/region.rs b/patch/aws-config/src/profile/region.rs new file mode 100644 index 0000000000000..832835cec438b --- /dev/null +++ b/patch/aws-config/src/profile/region.rs @@ -0,0 +1,260 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load a region from an AWS profile + +use crate::meta::region::{future, ProvideRegion}; +use crate::provider_config::ProviderConfig; +use aws_types::os_shim_internal::{Env, Fs}; +use aws_types::region::Region; + +use super::ProfileSet; + +/// Load a region from a profile file +/// +/// This provider will attempt to load AWS shared configuration, then read the `region` property +/// from the active profile. +/// +/// # Examples +/// +/// **Loads "us-west-2" as the region** +/// ```ini +/// [default] +/// region = us-west-2 +/// ``` +/// +/// **Loads `us-east-1` as the region _if and only if_ the `AWS_PROFILE` environment variable is set +/// to `other`.** +/// +/// ```ini +/// [profile other] +/// region = us-east-1 +/// ``` +/// +/// This provider is part of the [default region provider chain](crate::default_provider::region). +#[derive(Debug, Default)] +pub struct ProfileFileRegionProvider { + fs: Fs, + env: Env, + profile_override: Option, +} + +/// Builder for [ProfileFileRegionProvider] +#[derive(Default)] +pub struct Builder { + config: Option, + profile_override: Option, +} + +impl Builder { + /// Override the configuration for this provider + pub fn configure(mut self, config: &ProviderConfig) -> Self { + self.config = Some(config.clone()); + self + } + + /// Override the profile name used by the [ProfileFileRegionProvider] + pub fn profile_name(mut self, profile_name: impl Into) -> Self { + self.profile_override = Some(profile_name.into()); + self + } + + /// Build a [ProfileFileRegionProvider] from this builder + pub fn build(self) -> ProfileFileRegionProvider { + let conf = self.config.unwrap_or_default(); + ProfileFileRegionProvider { + env: conf.env(), + fs: conf.fs(), + profile_override: self.profile_override, + } + } +} + +impl ProfileFileRegionProvider { + /// Create a new [ProfileFileRegionProvider] + /// + /// To override the selected profile, set the `AWS_PROFILE` environment variable or use the [`Builder`]. + pub fn new() -> Self { + Self { + fs: Fs::real(), + env: Env::real(), + profile_override: None, + } + } + + /// [`Builder`] to construct a [`ProfileFileRegionProvider`] + pub fn builder() -> Builder { + Builder::default() + } + + async fn region(&self) -> Option { + let profile_set = super::parser::load(&self.fs, &self.env) + .await + .map_err(|err| tracing::warn!(err = %err, "failed to parse profile")) + .ok()?; + + resolve_profile_chain_for_region(&profile_set, self.profile_override.as_deref()) + } +} + +fn resolve_profile_chain_for_region( + profile_set: &'_ ProfileSet, + profile_override: Option<&str>, +) -> Option { + if profile_set.is_empty() { + return None; + } + + let mut selected_profile = profile_override.unwrap_or_else(|| profile_set.selected_profile()); + let mut visited_profiles = vec![]; + + loop { + let profile = profile_set.get_profile(selected_profile)?; + // Check to see if we're in a loop and return if that's true. + // Else, add the profile we're currently checking to our list of visited profiles. + if visited_profiles.contains(&selected_profile) { + return None; + } else { + visited_profiles.push(selected_profile); + } + + // Attempt to get region and source_profile for current profile + let selected_profile_region = profile + .get("region") + .map(|region| Region::new(region.to_owned())); + let source_profile = profile.get("source_profile"); + + // Check to see what we got + match (selected_profile_region, source_profile) { + // Profile had a region specified, return it :D + (Some(region), _) => { + return Some(region); + } + // No region specified, source_profile is self-referential so we return to avoid infinite loop + (None, Some(source_profile)) if source_profile == selected_profile => { + return None; + } + // No region specified, no source_profile specified so we return empty-handed + (None, None) => { + return None; + } + // No region specified, check source profile for a region in next loop iteration + (None, Some(source_profile)) => { + selected_profile = source_profile; + } + } + } +} + +impl ProvideRegion for ProfileFileRegionProvider { + fn region(&self) -> future::ProvideRegion { + future::ProvideRegion::new(self.region()) + } +} + +#[cfg(test)] +mod test { + use crate::profile::ProfileFileRegionProvider; + use crate::provider_config::ProviderConfig; + use crate::test_case::no_traffic_connector; + use aws_sdk_sts::Region; + use aws_types::os_shim_internal::{Env, Fs}; + use futures_util::FutureExt; + use tracing_test::traced_test; + + fn provider_config(dir_name: &str) -> ProviderConfig { + let fs = Fs::from_test_dir(format!("test-data/profile-provider/{}/fs", dir_name), "/"); + let env = Env::from_slice(&[("HOME", "/home")]); + ProviderConfig::empty() + .with_fs(fs) + .with_env(env) + .with_http_connector(no_traffic_connector()) + } + + #[traced_test] + #[test] + fn load_region() { + let provider = ProfileFileRegionProvider::builder() + .configure(&provider_config("region_override")) + .build(); + assert_eq!( + provider.region().now_or_never().unwrap(), + Some(Region::from_static("us-east-1")) + ); + } + + #[test] + fn load_region_env_profile_override() { + let conf = provider_config("region_override").with_env(Env::from_slice(&[ + ("HOME", "/home"), + ("AWS_PROFILE", "base"), + ])); + let provider = ProfileFileRegionProvider::builder() + .configure(&conf) + .build(); + assert_eq!( + provider.region().now_or_never().unwrap(), + Some(Region::from_static("us-east-1")) + ); + } + + #[test] + fn load_region_nonexistent_profile() { + let conf = provider_config("region_override").with_env(Env::from_slice(&[ + ("HOME", "/home"), + ("AWS_PROFILE", "doesnotexist"), + ])); + let provider = ProfileFileRegionProvider::builder() + .configure(&conf) + .build(); + assert_eq!(provider.region().now_or_never().unwrap(), None); + } + + #[test] + fn load_region_explicit_override() { + let conf = provider_config("region_override"); + let provider = ProfileFileRegionProvider::builder() + .configure(&conf) + .profile_name("base") + .build(); + assert_eq!( + provider.region().now_or_never().unwrap(), + Some(Region::from_static("us-east-1")) + ); + } + + #[tokio::test] + async fn load_region_from_source_profile() { + let config = r#" +[profile credentials] +aws_access_key_id = test-access-key-id +aws_secret_access_key = test-secret-access-key +aws_session_token = test-session-token +region = us-east-1 + +[profile needs-source] +source_profile = credentials +role_arn = arn:aws:iam::123456789012:role/test +"# + .trim(); + + let fs = Fs::from_slice(&[("test_config", config)]); + let env = Env::from_slice(&[("AWS_CONFIG_FILE", "test_config")]); + let provider_config = ProviderConfig::empty() + .with_fs(fs) + .with_env(env) + .with_http_connector(no_traffic_connector()); + + assert_eq!( + Some(Region::new("us-east-1")), + ProfileFileRegionProvider::builder() + .profile_name("needs-source") + .configure(&provider_config) + .build() + .region() + .await + ); + } +} diff --git a/patch/aws-config/src/profile/retry_config.rs b/patch/aws-config/src/profile/retry_config.rs new file mode 100644 index 0000000000000..2280933106ed5 --- /dev/null +++ b/patch/aws-config/src/profile/retry_config.rs @@ -0,0 +1,156 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load retry configuration properties from an AWS profile + +use std::str::FromStr; + +use aws_smithy_types::retry::{RetryConfigBuilder, RetryConfigErr, RetryMode}; +use aws_types::os_shim_internal::{Env, Fs}; + +use crate::provider_config::ProviderConfig; + +/// Load retry configuration properties from a profile file +/// +/// This provider will attempt to load AWS shared configuration, then read retry configuration properties +/// from the active profile. +/// +/// # Examples +/// +/// **Loads 2 as the `max_attempts` to make when sending a request** +/// ```ini +/// [default] +/// max_attempts = 2 +/// ``` +/// +/// **Loads `standard` as the `retry_mode` _if and only if_ the `other` profile is selected.** +/// +/// ```ini +/// [profile other] +/// retry_mode = standard +/// ``` +/// +/// This provider is part of the [default retry_config provider chain](crate::default_provider::retry_config). +#[derive(Debug, Default)] +pub struct ProfileFileRetryConfigProvider { + fs: Fs, + env: Env, + profile_override: Option, +} + +/// Builder for [ProfileFileRetryConfigProvider] +#[derive(Default)] +pub struct Builder { + config: Option, + profile_override: Option, +} + +impl Builder { + /// Override the configuration for this provider + pub fn configure(mut self, config: &ProviderConfig) -> Self { + self.config = Some(config.clone()); + self + } + + /// Override the profile name used by the [ProfileFileRetryConfigProvider] + pub fn profile_name(mut self, profile_name: impl Into) -> Self { + self.profile_override = Some(profile_name.into()); + self + } + + /// Build a [ProfileFileRetryConfigProvider] from this builder + pub fn build(self) -> ProfileFileRetryConfigProvider { + let conf = self.config.unwrap_or_default(); + ProfileFileRetryConfigProvider { + env: conf.env(), + fs: conf.fs(), + profile_override: self.profile_override, + } + } +} + +impl ProfileFileRetryConfigProvider { + /// Create a new [ProfileFileRetryConfigProvider] + /// + /// To override the selected profile, set the `AWS_PROFILE` environment variable or use the [Builder]. + pub fn new() -> Self { + Self { + fs: Fs::real(), + env: Env::real(), + profile_override: None, + } + } + + /// [Builder] to construct a [ProfileFileRetryConfigProvider] + pub fn builder() -> Builder { + Builder::default() + } + + /// Attempt to create a new RetryConfigBuilder from a profile file. + pub async fn retry_config_builder(&self) -> Result { + let profile = match super::parser::load(&self.fs, &self.env).await { + Ok(profile) => profile, + Err(err) => { + tracing::warn!(err = %err, "failed to parse profile"); + // return an empty builder + return Ok(RetryConfigBuilder::new()); + } + }; + + let selected_profile = self + .profile_override + .as_deref() + .unwrap_or_else(|| profile.selected_profile()); + let selected_profile = match profile.get_profile(selected_profile) { + Some(profile) => profile, + None => { + // Only warn if the user specified a profile name to use. + if self.profile_override.is_some() { + tracing::warn!("failed to get selected '{}' profile", selected_profile); + } + // return an empty builder + return Ok(RetryConfigBuilder::new()); + } + }; + + let max_attempts = match selected_profile.get("max_attempts") { + Some(max_attempts) => match max_attempts.parse::() { + Ok(max_attempts) if max_attempts == 0 => { + return Err(RetryConfigErr::MaxAttemptsMustNotBeZero { + set_by: "aws profile".into(), + }); + } + Ok(max_attempts) => Some(max_attempts), + Err(source) => { + return Err(RetryConfigErr::FailedToParseMaxAttempts { + set_by: "aws profile".into(), + source, + }); + } + }, + None => None, + }; + + let retry_mode = match selected_profile.get("retry_mode") { + Some(retry_mode) => match RetryMode::from_str(retry_mode) { + Ok(retry_mode) => Some(retry_mode), + Err(retry_mode_err) => { + return Err(RetryConfigErr::InvalidRetryMode { + set_by: "aws profile".into(), + source: retry_mode_err, + }); + } + }, + None => None, + }; + + let mut retry_config_builder = RetryConfigBuilder::new(); + retry_config_builder + .set_max_attempts(max_attempts) + .set_mode(retry_mode); + + Ok(retry_config_builder) + } +} diff --git a/patch/aws-config/src/profile/timeout_config.rs b/patch/aws-config/src/profile/timeout_config.rs new file mode 100644 index 0000000000000..3ce69eac9be1e --- /dev/null +++ b/patch/aws-config/src/profile/timeout_config.rs @@ -0,0 +1,183 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load timeout configuration properties from an AWS profile + +use crate::parsing::parse_str_as_timeout; +use crate::profile::Profile; +use crate::provider_config::ProviderConfig; + +use aws_smithy_types::timeout; +use aws_smithy_types::tristate::TriState; +use aws_types::os_shim_internal::{Env, Fs}; + +use std::time::Duration; + +// Currently unsupported timeouts +const PROFILE_VAR_CONNECT_TIMEOUT: &str = "connect_timeout"; +const PROFILE_VAR_TLS_NEGOTIATION_TIMEOUT: &str = "tls_negotiation_timeout"; +const PROFILE_VAR_READ_TIMEOUT: &str = "read_timeout"; + +// Supported timeouts +const PROFILE_VAR_API_CALL_ATTEMPT_TIMEOUT: &str = "api_call_attempt_timeout"; +const PROFILE_VAR_API_CALL_TIMEOUT: &str = "api_call_timeout"; + +/// Load timeout configuration properties from a profile file +/// +/// This provider will attempt to load AWS shared configuration, then read timeout configuration +/// properties from the active profile. Timeout values represent the number of seconds before timing +/// out and must be non-negative floats or integers. NaN and infinity are also invalid. If at least +/// one of these values is valid, construction will succeed. +/// +/// # Examples +/// +/// **Sets timeouts for the `default` profile** +/// ```ini +/// [default] +/// api_call_attempt_timeout = 2 +/// api_call_timeout = 3 +/// ``` +/// +/// **Sets the `api_call_attempt_timeout` to 0.5 seconds _if and only if_ the `other` profile is selected.** +/// +/// ```ini +/// [profile other] +/// api_call_attempt_timeout = 0.5 +/// ``` +/// +/// This provider is part of the [default timeout config provider chain](crate::default_provider::timeout_config). +#[derive(Debug, Default)] +pub struct ProfileFileTimeoutConfigProvider { + fs: Fs, + env: Env, + profile_override: Option, +} + +/// Builder for [`ProfileFileTimeoutConfigProvider`] +#[derive(Default)] +pub struct Builder { + config: Option, + profile_override: Option, +} + +impl Builder { + /// Override the configuration for this provider + pub fn configure(mut self, config: &ProviderConfig) -> Self { + self.config = Some(config.clone()); + self + } + + /// Override the profile name used by the [`ProfileFileTimeoutConfigProvider`] + pub fn profile_name(mut self, profile_name: impl Into) -> Self { + self.profile_override = Some(profile_name.into()); + self + } + + /// Build a [`ProfileFileTimeoutConfigProvider`] from this builder + pub fn build(self) -> ProfileFileTimeoutConfigProvider { + let conf = self.config.unwrap_or_default(); + ProfileFileTimeoutConfigProvider { + env: conf.env(), + fs: conf.fs(), + profile_override: self.profile_override, + } + } +} + +impl ProfileFileTimeoutConfigProvider { + /// Create a new [`ProfileFileTimeoutConfigProvider`] + /// + /// To override the selected profile, set the `AWS_PROFILE` environment variable or use the [`Builder`]. + pub fn new() -> Self { + Self { + fs: Fs::real(), + env: Env::real(), + profile_override: None, + } + } + + /// [`Builder`] to construct a [`ProfileFileTimeoutConfigProvider`] + pub fn builder() -> Builder { + Builder::default() + } + + /// Attempt to create a new [`timeout::Config`](aws_smithy_types::timeout::Config) from a profile file. + pub async fn timeout_config(&self) -> Result { + let profile = match super::parser::load(&self.fs, &self.env).await { + Ok(profile) => profile, + Err(err) => { + tracing::warn!(err = %err, "failed to parse profile, skipping it"); + // return an empty builder + return Ok(Default::default()); + } + }; + + let selected_profile = self + .profile_override + .as_deref() + .unwrap_or_else(|| profile.selected_profile()); + let selected_profile = match profile.get_profile(selected_profile) { + Some(profile) => profile, + None => { + // Only warn if the user specified a profile name to use. + if self.profile_override.is_some() { + tracing::warn!( + "failed to get selected '{}' profile, skipping it", + selected_profile + ); + } + // return an empty config + return Ok(timeout::Config::new()); + } + }; + + // Warn users that set unsupported timeouts in their profile + for timeout in [ + PROFILE_VAR_CONNECT_TIMEOUT, + PROFILE_VAR_TLS_NEGOTIATION_TIMEOUT, + PROFILE_VAR_READ_TIMEOUT, + ] { + warn_if_unsupported_timeout_is_set(selected_profile, timeout); + } + + let api_call_attempt_timeout = construct_timeout_from_profile_var( + selected_profile, + PROFILE_VAR_API_CALL_ATTEMPT_TIMEOUT, + )?; + let api_call_timeout = + construct_timeout_from_profile_var(selected_profile, PROFILE_VAR_API_CALL_TIMEOUT)?; + + let api_timeouts = timeout::Api::new() + .with_call_timeout(api_call_timeout) + .with_call_attempt_timeout(api_call_attempt_timeout); + + // Only API-related timeouts are currently supported + Ok(timeout::Config::new().with_api_timeouts(api_timeouts)) + } +} + +fn construct_timeout_from_profile_var( + profile: &Profile, + var: &'static str, +) -> Result, timeout::ConfigError> { + let profile_name = format!("aws profile [{}]", profile.name()); + match profile.get(var) { + Some(timeout) => { + parse_str_as_timeout(timeout, var.into(), profile_name.into()).map(TriState::Set) + } + None => Ok(TriState::Unset), + } +} + +fn warn_if_unsupported_timeout_is_set(profile: &Profile, var: &'static str) { + if profile.get(var).is_some() { + tracing::warn!( + "Profile '{}' set {} timeout but that feature is currently unimplemented so the setting will be ignored. \ + To help us prioritize support for this feature, please upvote aws-sdk-rust#151 (https://github.com/awslabs/aws-sdk-rust/issues/151)", + profile.name(), + var + ) + } +} diff --git a/patch/aws-config/src/provider_config.rs b/patch/aws-config/src/provider_config.rs new file mode 100644 index 0000000000000..6b3243e43357c --- /dev/null +++ b/patch/aws-config/src/provider_config.rs @@ -0,0 +1,271 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Configuration Options for Credential Providers + +use aws_smithy_async::rt::sleep::{default_async_sleep, AsyncSleep}; +use aws_smithy_client::erase::DynConnector; +use aws_types::os_shim_internal::{Env, Fs, TimeSource}; +use aws_types::{ + http_connector::{HttpConnector, HttpSettings}, + region::Region, +}; + +use std::error::Error; +use std::fmt::{Debug, Formatter}; +use std::sync::Arc; + +use crate::connector::default_connector; +use http::Uri; +use hyper::client::connect::Connection; +use tokio::io::{AsyncRead, AsyncWrite}; + +/// Configuration options for Credential Providers +/// +/// Most credential providers builders offer a `configure` method which applies general provider configuration +/// options. +/// +/// To use a region from the default region provider chain use [`ProviderConfig::with_default_region`]. +/// Otherwise, use [`ProviderConfig::without_region`]. Note that some credentials providers require a region +/// to be explicitly set. +#[derive(Clone)] +pub struct ProviderConfig { + env: Env, + fs: Fs, + time_source: TimeSource, + connector: HttpConnector, + sleep: Option>, + region: Option, +} + +impl Debug for ProviderConfig { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ProviderConfig") + .field("env", &self.env) + .field("fs", &self.fs) + .field("sleep", &self.sleep) + .field("region", &self.region) + .finish() + } +} + +impl Default for ProviderConfig { + fn default() -> Self { + let connector = HttpConnector::ConnectorFn(Arc::new( + |settings: &HttpSettings, sleep: Option>| { + default_connector(settings, sleep) + }, + )); + + Self { + env: Env::default(), + fs: Fs::default(), + time_source: TimeSource::default(), + connector, + sleep: default_async_sleep(), + region: None, + } + } +} + +#[cfg(test)] +impl ProviderConfig { + /// ProviderConfig with all configuration removed + /// + /// Unlike [`ProviderConfig::empty`] where `env` and `fs` will use their non-mocked implementations, + /// this method will use an empty mock environment and an empty mock file system. + pub fn no_configuration() -> Self { + use aws_types::os_shim_internal::ManualTimeSource; + use std::collections::HashMap; + use std::time::UNIX_EPOCH; + Self { + env: Env::from_slice(&[]), + fs: Fs::from_raw_map(HashMap::new()), + time_source: TimeSource::manual(&ManualTimeSource::new(UNIX_EPOCH)), + connector: HttpConnector::Prebuilt(None), + sleep: None, + region: None, + } + } +} + +impl ProviderConfig { + /// Create a default provider config with the region unset. + /// + /// Using this option means that you may need to set a region manually. + /// + /// This constructor will use a default value for the HTTPS connector and Sleep implementation + /// when they are enabled as crate features which is usually the correct option. To construct + /// a `ProviderConfig` without these fields set, use [`ProviderConfig::empty`]. + /// + /// + /// # Examples + /// ```no_run + /// # #[cfg(any(feature = "rustls", feature = "native-tls"))] + /// # fn example() { + /// use aws_config::provider_config::ProviderConfig; + /// use aws_sdk_sts::Region; + /// use aws_config::web_identity_token::WebIdentityTokenCredentialsProvider; + /// let conf = ProviderConfig::without_region().with_region(Some(Region::new("us-east-1"))); + /// + /// let credential_provider = WebIdentityTokenCredentialsProvider::builder().configure(&conf).build(); + /// # } + /// ``` + pub fn without_region() -> Self { + Self::default() + } + + /// Constructs a ProviderConfig with no fields set + pub fn empty() -> Self { + ProviderConfig { + env: Env::default(), + fs: Fs::default(), + time_source: TimeSource::default(), + connector: HttpConnector::Prebuilt(None), + sleep: None, + region: None, + } + } + + /// Create a default provider config with the region region automatically loaded from the default chain. + /// + /// # Examples + /// ```no_run + /// # async fn test() { + /// use aws_config::provider_config::ProviderConfig; + /// use aws_sdk_sts::Region; + /// use aws_config::web_identity_token::WebIdentityTokenCredentialsProvider; + /// let conf = ProviderConfig::with_default_region().await; + /// let credential_provider = WebIdentityTokenCredentialsProvider::builder().configure(&conf).build(); + /// } + /// ``` + pub async fn with_default_region() -> Self { + Self::without_region().load_default_region().await + } + + // When all crate features are disabled, these accessors are unused + + #[allow(dead_code)] + pub(crate) fn env(&self) -> Env { + self.env.clone() + } + + #[allow(dead_code)] + pub(crate) fn fs(&self) -> Fs { + self.fs.clone() + } + + #[allow(dead_code)] + pub(crate) fn time_source(&self) -> TimeSource { + self.time_source.clone() + } + + #[allow(dead_code)] + pub(crate) fn default_connector(&self) -> Option { + self.connector + .connector(&HttpSettings::default(), self.sleep.clone()) + } + + #[allow(dead_code)] + pub(crate) fn connector(&self, settings: &HttpSettings) -> Option { + self.connector.connector(settings, self.sleep.clone()) + } + + #[allow(dead_code)] + pub(crate) fn sleep(&self) -> Option> { + self.sleep.clone() + } + + #[allow(dead_code)] + pub(crate) fn region(&self) -> Option { + self.region.clone() + } + + /// Override the region for the configuration + pub fn with_region(mut self, region: Option) -> Self { + self.region = region; + self + } + + /// Use the [default region chain](crate::default_provider::region) to set the + /// region for this configuration + /// + /// Note: the `env` and `fs` already set on this provider will be used when loading the default region. + pub async fn load_default_region(self) -> Self { + use crate::default_provider::region::DefaultRegionChain; + let provider_chain = DefaultRegionChain::builder().configure(&self).build(); + self.with_region(provider_chain.region().await) + } + + // these setters are doc(hidden) because they only exist for tests + + #[doc(hidden)] + pub fn with_fs(self, fs: Fs) -> Self { + ProviderConfig { fs, ..self } + } + + #[doc(hidden)] + pub fn with_env(self, env: Env) -> Self { + ProviderConfig { env, ..self } + } + + #[doc(hidden)] + pub fn with_time_source(self, time_source: TimeSource) -> Self { + ProviderConfig { + time_source, + ..self + } + } + + /// Override the HTTPS connector for this configuration + /// + /// **Warning**: Use of this method will prevent you from taking advantage of the HTTP connect timeouts. + /// Consider [`ProviderConfig::with_tcp_connector`]. + /// + /// # Stability + /// This method is expected to change to support HTTP configuration. + pub fn with_http_connector(self, connector: DynConnector) -> Self { + ProviderConfig { + connector: HttpConnector::Prebuilt(Some(connector)), + ..self + } + } + + /// Override the TCP connector for this configuration + /// + /// This connector MUST provide an HTTPS encrypted connection. + /// + /// # Stability + /// This method may change to support HTTP configuration. + pub fn with_tcp_connector(self, connector: C) -> Self + where + C: Clone + Send + Sync + 'static, + C: tower::Service, + C::Response: Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static, + C::Future: Unpin + Send + 'static, + C::Error: Into>, + { + let connector_fn = move |settings: &HttpSettings, sleep: Option>| { + let mut builder = aws_smithy_client::hyper_ext::Adapter::builder() + .timeout(&settings.http_timeout_config); + if let Some(sleep) = sleep { + builder = builder.sleep_impl(sleep); + }; + Some(DynConnector::new(builder.build(connector.clone()))) + }; + ProviderConfig { + connector: HttpConnector::ConnectorFn(Arc::new(connector_fn)), + ..self + } + } + + /// Override the sleep implementation for this configuration + pub fn with_sleep(self, sleep: impl AsyncSleep + 'static) -> Self { + ProviderConfig { + sleep: Some(Arc::new(sleep)), + ..self + } + } +} diff --git a/patch/aws-config/src/sso.rs b/patch/aws-config/src/sso.rs new file mode 100644 index 0000000000000..638de13c44fb4 --- /dev/null +++ b/patch/aws-config/src/sso.rs @@ -0,0 +1,454 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! SSO Credentials Provider +//! +//! This credentials provider enables loading credentials from `~/.aws/sso/cache`. For more information, +//! see [Using AWS SSO Credentials](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/sso-credentials.html) +//! +//! This provider is included automatically when profiles are loaded. + +use crate::fs_util::{home_dir, Os}; +use crate::json_credentials::{json_parse_loop, InvalidJsonCredentials}; +use crate::provider_config::ProviderConfig; + +use aws_sdk_sso::middleware::DefaultMiddleware as SsoMiddleware; +use aws_sdk_sso::model::RoleCredentials; +use aws_smithy_client::erase::DynConnector; +use aws_smithy_types::date_time::Format; +use aws_smithy_types::DateTime; +use aws_types::credentials::{CredentialsError, ProvideCredentials}; +use aws_types::os_shim_internal::{Env, Fs}; +use aws_types::region::Region; +use aws_types::{credentials, Credentials}; + +use std::convert::TryInto; +use std::error::Error; +use std::fmt::{Display, Formatter}; +use std::io; +use std::path::PathBuf; + +use zeroize::Zeroizing; + +impl crate::provider_config::ProviderConfig { + pub(crate) fn sso_client( + &self, + ) -> aws_smithy_client::Client { + use crate::connector::expect_connector; + use aws_smithy_client::http_connector::HttpSettings; + + aws_smithy_client::Builder::<(), SsoMiddleware>::new() + .connector(expect_connector(self.connector(&HttpSettings::default()))) + .sleep_impl(self.sleep()) + .build() + } +} + +/// SSO Credentials Provider +/// +/// _Note: This provider is part of the default credentials chain and is integrated with the profile-file provider._ +/// +/// This credentials provider will use cached SSO tokens stored in `~/.aws/sso/cache/.json`. +/// `` is computed based on the configured [`start_url`](Builder::start_url). +#[derive(Debug)] +pub struct SsoCredentialsProvider { + fs: Fs, + env: Env, + sso_config: SsoConfig, + client: aws_smithy_client::Client, +} + +impl SsoCredentialsProvider { + /// Creates a builder for [`SsoCredentialsProvider`] + pub fn builder() -> Builder { + Builder::new() + } + + pub(crate) fn new(provider_config: &ProviderConfig, sso_config: SsoConfig) -> Self { + let fs = provider_config.fs(); + let env = provider_config.env(); + + SsoCredentialsProvider { + fs, + env, + client: provider_config.sso_client(), + sso_config, + } + } + + async fn credentials(&self) -> credentials::Result { + load_sso_credentials(&self.sso_config, &self.client, &self.env, &self.fs).await + } +} + +impl ProvideCredentials for SsoCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> credentials::future::ProvideCredentials<'a> + where + Self: 'a, + { + credentials::future::ProvideCredentials::new(self.credentials()) + } +} + +/// Builder for [`SsoCredentialsProvider`] +#[derive(Default, Debug, Clone)] +pub struct Builder { + provider_config: Option, + account_id: Option, + role_name: Option, + start_url: Option, + region: Option, +} + +impl Builder { + /// Create a new builder for [`SsoCredentialsProvider`] + pub fn new() -> Self { + Self::default() + } + + /// Override the configuration used for this provider + pub fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.provider_config = Some(provider_config.clone()); + self + } + + /// Set the account id used for SSO + pub fn account_id(mut self, account_id: impl Into) -> Self { + self.account_id = Some(account_id.into()); + self + } + + /// Set the role name used for SSO + pub fn role_name(mut self, role_name: impl Into) -> Self { + self.role_name = Some(role_name.into()); + self + } + + /// Set the start URL used for SSO + pub fn start_url(mut self, start_url: impl Into) -> Self { + self.start_url = Some(start_url.into()); + self + } + + /// Set the region used for SSO + pub fn region(mut self, region: Region) -> Self { + self.region = Some(region); + self + } + + /// Construct an SsoCredentialsProvider from the builder + /// + /// # Panics + /// This method will panic if the any of the following required fields are unset: + /// - [`start_url`](Self::start_url) + /// - [`role_name`](Self::role_name) + /// - [`account_id`](Self::account_id) + /// - [`region`](Self::region) + pub fn build(self) -> SsoCredentialsProvider { + let provider_config = self.provider_config.unwrap_or_default(); + let sso_config = SsoConfig { + account_id: self.account_id.expect("account_id must be set"), + role_name: self.role_name.expect("role_name must be set"), + start_url: self.start_url.expect("start_url must be set"), + region: self.region.expect("region must be set"), + }; + SsoCredentialsProvider::new(&provider_config, sso_config) + } +} + +#[derive(Debug)] +pub(crate) enum LoadTokenError { + InvalidCredentials(InvalidJsonCredentials), + NoHomeDirectory, + IoError { err: io::Error, path: PathBuf }, +} + +impl Display for LoadTokenError { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + LoadTokenError::InvalidCredentials(err) => { + write!(f, "SSO Token was invalid (expected JSON): {}", err) + } + LoadTokenError::NoHomeDirectory => write!(f, "Could not resolve a home directory"), + LoadTokenError::IoError { err, path } => { + write!(f, "failed to read `{}`: {}", path.display(), err) + } + } + } +} + +impl Error for LoadTokenError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match self { + LoadTokenError::InvalidCredentials(err) => Some(err as _), + LoadTokenError::NoHomeDirectory => None, + LoadTokenError::IoError { err, .. } => Some(err as _), + } + } +} + +#[derive(Debug)] +pub(crate) struct SsoConfig { + pub(crate) account_id: String, + pub(crate) role_name: String, + pub(crate) start_url: String, + pub(crate) region: Region, +} + +async fn load_sso_credentials( + sso_config: &SsoConfig, + sso: &aws_smithy_client::Client, + env: &Env, + fs: &Fs, +) -> credentials::Result { + let token = load_token(&sso_config.start_url, env, fs) + .await + .map_err(CredentialsError::provider_error)?; + let config = aws_sdk_sso::Config::builder() + .region(sso_config.region.clone()) + .build(); + let operation = aws_sdk_sso::operation::GetRoleCredentials::builder() + .role_name(&sso_config.role_name) + .access_token(&*token.access_token) + .account_id(&sso_config.account_id) + .build() + .map_err(|err| { + CredentialsError::unhandled(format!("could not construct SSO token input: {}", err)) + })? + .make_operation(&config) + .await + .map_err(CredentialsError::unhandled)?; + let resp = sso + .call(operation) + .await + .map_err(CredentialsError::provider_error)?; + let credentials: RoleCredentials = resp + .role_credentials + .ok_or_else(|| CredentialsError::unhandled("SSO did not return credentials"))?; + let akid = credentials + .access_key_id + .ok_or_else(|| CredentialsError::unhandled("no access key id in response"))?; + let secret_key = credentials + .secret_access_key + .ok_or_else(|| CredentialsError::unhandled("no secret key in response"))?; + let expiration = DateTime::from_millis(credentials.expiration) + .try_into() + .map_err(|err| { + CredentialsError::unhandled(format!( + "expiration could not be converted into a system time: {}", + err + )) + })?; + Ok(Credentials::new( + akid, + secret_key, + credentials.session_token, + Some(expiration), + "SSO", + )) +} + +/// Load the token for `start_url` from `~/.aws/sso/cache/.json` +async fn load_token(start_url: &str, env: &Env, fs: &Fs) -> Result { + let home = home_dir(env, Os::real()).ok_or(LoadTokenError::NoHomeDirectory)?; + let path = sso_token_path(start_url, &home); + let data = + Zeroizing::new( + fs.read_to_end(&path) + .await + .map_err(|err| LoadTokenError::IoError { + err, + path: path.to_path_buf(), + })?, + ); + let token = parse_token_json(&data).map_err(LoadTokenError::InvalidCredentials)?; + Ok(token) +} + +#[derive(Debug, Clone, PartialEq)] +pub(crate) struct SsoToken { + access_token: Zeroizing, + expires_at: DateTime, + region: Option, +} + +/// Parse SSO token JSON from input +fn parse_token_json(input: &[u8]) -> Result { + /* + Example: + { + "accessToken": "base64string", + "expiresAt": "2019-11-14T04:05:45Z", + "region": "us-west-2", + "startUrl": "https://d-abc123.awsapps.com/start" + }*/ + let mut acccess_token = None; + let mut expires_at = None; + let mut region = None; + let mut start_url = None; + json_parse_loop(input, |key, value| match key { + key if key.eq_ignore_ascii_case("accessToken") => acccess_token = Some(value.to_string()), + key if key.eq_ignore_ascii_case("expiresAt") => expires_at = Some(value), + key if key.eq_ignore_ascii_case("region") => region = Some(value.to_string()), + key if key.eq_ignore_ascii_case("startUrl") => start_url = Some(value.to_string()), + _other => {} // ignored + })?; + let access_token = + Zeroizing::new(acccess_token.ok_or(InvalidJsonCredentials::MissingField("accessToken"))?); + let expires_at = expires_at.ok_or(InvalidJsonCredentials::MissingField("expiresAt"))?; + let expires_at = DateTime::from_str(expires_at.as_ref(), Format::DateTime).map_err(|e| { + InvalidJsonCredentials::InvalidField { + field: "expiresAt", + err: e.into(), + } + })?; + let region = region.map(Region::new); + Ok(SsoToken { + access_token, + expires_at, + region, + }) +} + +#[cfg(feature = "openssl")] +fn sha1(buf: &[u8]) -> [u8; 20] { + use openssl::sha::sha1; + sha1(buf) +} + +#[cfg(feature = "ring")] +fn sha1(buf: &[u8]) -> [u8; 20] { + use ring::digest; + let mut ret: [u8; 20] = [0; 20]; + ret.clone_from_slice(digest::digest(&digest::SHA1_FOR_LEGACY_USE_ONLY, buf).as_ref()); + ret +} + +/// Determine the SSO token path for a given start_url +fn sso_token_path(start_url: &str, home: &str) -> PathBuf { + // hex::encode returns a lowercase string + let mut out = PathBuf::with_capacity(home.len() + "/.aws/sso/cache".len() + ".json".len() + 40); + out.push(home); + out.push(".aws/sso/cache"); + out.push(&hex::encode(sha1(start_url.as_bytes()))); + out.set_extension("json"); + out +} + +#[cfg(test)] +mod test { + use crate::json_credentials::InvalidJsonCredentials; + use crate::sso::{load_token, parse_token_json, sso_token_path, LoadTokenError, SsoToken}; + use aws_smithy_types::DateTime; + use aws_types::os_shim_internal::{Env, Fs}; + use aws_types::region::Region; + use zeroize::Zeroizing; + + #[test] + fn deserialize_valid_tokens() { + let token = br#" + { + "accessToken": "base64string", + "expiresAt": "2009-02-13T23:31:30Z", + "region": "us-west-2", + "startUrl": "https://d-abc123.awsapps.com/start" + }"#; + assert_eq!( + parse_token_json(token).expect("valid"), + SsoToken { + access_token: Zeroizing::new("base64string".into()), + expires_at: DateTime::from_secs(1234567890), + region: Some(Region::from_static("us-west-2")) + } + ); + + let no_region = br#"{ + "accessToken": "base64string", + "expiresAt": "2009-02-13T23:31:30Z" + }"#; + assert_eq!( + parse_token_json(no_region).expect("valid"), + SsoToken { + access_token: Zeroizing::new("base64string".into()), + expires_at: DateTime::from_secs(1234567890), + region: None + } + ); + } + + #[test] + fn invalid_timestamp() { + let token = br#" + { + "accessToken": "base64string", + "expiresAt": "notatimestamp", + "region": "us-west-2", + "startUrl": "https://d-abc123.awsapps.com/start" + }"#; + let err = parse_token_json(token).expect_err("invalid timestamp"); + assert!( + format!("{}", err).contains("Invalid field in response: `expiresAt`."), + "{}", + err + ); + } + + #[test] + fn missing_fields() { + let token = br#" + { + "expiresAt": "notatimestamp", + "region": "us-west-2", + "startUrl": "https://d-abc123.awsapps.com/start" + }"#; + let err = parse_token_json(token).expect_err("missing akid"); + assert!( + matches!(err, InvalidJsonCredentials::MissingField("accessToken")), + "incorrect error: {:?}", + err + ); + + let token = br#" + { + "accessToken": "akid", + "region": "us-west-2", + "startUrl": "https://d-abc123.awsapps.com/start" + }"#; + let err = parse_token_json(token).expect_err("missing expiry"); + assert!( + matches!(err, InvalidJsonCredentials::MissingField("expiresAt")), + "incorrect error: {:?}", + err + ); + } + + #[test] + fn determine_correct_cache_filenames() { + assert_eq!( + sso_token_path("https://d-92671207e4.awsapps.com/start", "/home/me").as_os_str(), + "/home/me/.aws/sso/cache/13f9d35043871d073ab260e020f0ffde092cb14b.json" + ); + assert_eq!( + sso_token_path("https://d-92671207e4.awsapps.com/start", "/home/me/").as_os_str(), + "/home/me/.aws/sso/cache/13f9d35043871d073ab260e020f0ffde092cb14b.json" + ); + } + + #[tokio::test] + async fn gracefully_handle_missing_files() { + let err = load_token( + "asdf", + &Env::from_slice(&[("HOME", "/home")]), + &Fs::from_slice(&[]), + ) + .await + .expect_err("should fail, file is missing"); + assert!( + matches!(err, LoadTokenError::IoError { .. }), + "should be io error, got {}", + err + ); + } +} diff --git a/patch/aws-config/src/sts.rs b/patch/aws-config/src/sts.rs new file mode 100644 index 0000000000000..8d53cbfcf41fa --- /dev/null +++ b/patch/aws-config/src/sts.rs @@ -0,0 +1,27 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Credential provider augmentation through the AWS Security Token Service (STS). + +mod assume_role; + +pub(crate) mod util; + +use crate::connector::expect_connector; +pub use assume_role::{AssumeRoleProvider, AssumeRoleProviderBuilder}; + +use aws_sdk_sts::middleware::DefaultMiddleware; +use aws_smithy_client::erase::DynConnector; +use aws_smithy_client::http_connector::HttpSettings; +use aws_smithy_client::{Builder, Client}; + +impl crate::provider_config::ProviderConfig { + pub(crate) fn sts_client(&self) -> Client { + Builder::<(), DefaultMiddleware>::new() + .connector(expect_connector(self.connector(&HttpSettings::default()))) + .sleep_impl(self.sleep()) + .build() + } +} diff --git a/patch/aws-config/src/sts/assume_role.rs b/patch/aws-config/src/sts/assume_role.rs new file mode 100644 index 0000000000000..c64fb5d1908da --- /dev/null +++ b/patch/aws-config/src/sts/assume_role.rs @@ -0,0 +1,223 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Assume credentials for a role through the AWS Security Token Service (STS). + +use aws_sdk_sts::error::AssumeRoleErrorKind; +use aws_sdk_sts::middleware::DefaultMiddleware; +use aws_sdk_sts::operation::AssumeRole; +use aws_smithy_async::rt::sleep::default_async_sleep; +use aws_smithy_client::erase::DynConnector; +use aws_smithy_client::http_connector::HttpSettings; +use aws_smithy_http::result::SdkError; +use aws_types::credentials::{ + self, future, CredentialsError, ProvideCredentials, SharedCredentialsProvider, +}; +use aws_types::region::Region; + +use crate::connector::{default_connector, expect_connector}; +use tracing::Instrument; + +/// Credentials provider that uses credentials provided by another provider to assume a role +/// through the AWS Security Token Service (STS). +/// +/// When asked to provide credentials, this provider will first invoke the inner credentials +/// provider to get AWS credentials for STS. Then, it will call STS to get assumed credentials for +/// the desired role. +/// +/// # Examples +/// ```no_run +/// use aws_config::sts::{AssumeRoleProvider}; +/// use aws_types::{Credentials, region::Region}; +/// use aws_config::environment; +/// use aws_config::environment::credentials::EnvironmentVariableCredentialsProvider; +/// use std::sync::Arc; +/// +/// let provider = AssumeRoleProvider::builder("arn:aws:iam::123456789012:role/demo") +/// .region(Region::from_static("us-east-2")) +/// .session_name("testAR") +/// .build(Arc::new(EnvironmentVariableCredentialsProvider::new()) as Arc<_>); +/// ``` +#[derive(Debug)] +pub struct AssumeRoleProvider { + sts: aws_smithy_client::Client, + conf: aws_sdk_sts::Config, + op: aws_sdk_sts::input::AssumeRoleInput, +} + +impl AssumeRoleProvider { + /// Build a new role-assuming provider for the given role. + /// + /// The `role` argument should take the form an Amazon Resource Name (ARN) like + /// + /// ```text + /// arn:aws:iam::123456789012:role/example + /// ``` + pub fn builder(role: impl Into) -> AssumeRoleProviderBuilder { + AssumeRoleProviderBuilder::new(role.into()) + } +} + +/// A builder for [`AssumeRoleProvider`]. +/// +/// Construct one through [`AssumeRoleProvider::builder`]. +pub struct AssumeRoleProviderBuilder { + role_arn: String, + external_id: Option, + session_name: Option, + region: Option, + connection: Option, +} + +impl AssumeRoleProviderBuilder { + /// Start a new assume role builder for the given role. + /// + /// The `role` argument should take the form an Amazon Resource Name (ARN) like + /// + /// ```text + /// arn:aws:iam::123456789012:role/example + /// ``` + pub fn new(role: impl Into) -> Self { + Self { + role_arn: role.into(), + external_id: None, + session_name: None, + region: None, + connection: None, + } + } + + /// Set a unique identifier that might be required when you assume a role in another account. + /// + /// If the administrator of the account to which the role belongs provided you with an external + /// ID, then provide that value in this parameter. The value can be any string, such as a + /// passphrase or account number. + pub fn external_id(mut self, id: impl Into) -> Self { + self.external_id = Some(id.into()); + self + } + + /// Set an identifier for the assumed role session. + /// + /// Use the role session name to uniquely identify a session when the same role is assumed by + /// different principals or for different reasons. In cross-account scenarios, the role session + /// name is visible to, and can be logged by the account that owns the role. The role session + /// name is also used in the ARN of the assumed role principal. + pub fn session_name(mut self, name: impl Into) -> Self { + self.session_name = Some(name.into()); + self + } + + /// Set the region to assume the role in. + /// + /// This dictates which STS endpoint the AssumeRole action is invoked on. + pub fn region(mut self, region: Region) -> Self { + self.region = Some(region); + self + } + + /// Set the backing connection to use when talking to STS. + /// + /// If the `rustls` or `nativetls` features are enabled, this field is optional and a default + /// backing connection will be provided. + pub fn connection(mut self, conn: impl aws_smithy_client::bounds::SmithyConnector) -> Self { + self.connection = Some(aws_smithy_client::erase::DynConnector::new(conn)); + self + } + + /// Build a credentials provider for this role authorized by the given `provider`. + pub fn build(self, provider: impl Into) -> AssumeRoleProvider { + let config = aws_sdk_sts::Config::builder() + .credentials_provider(provider.into()) + .region(self.region.clone()) + .build(); + + let conn = self.connection.unwrap_or_else(|| { + expect_connector(default_connector( + &HttpSettings::default(), + default_async_sleep(), + )) + }); + let client = aws_smithy_client::Builder::new() + .connector(conn) + .middleware(DefaultMiddleware::new()) + .sleep_impl(default_async_sleep()) + .build(); + + let session_name = self + .session_name + .unwrap_or_else(|| super::util::default_session_name("assume-role-provider")); + + let operation = AssumeRole::builder() + .set_role_arn(Some(self.role_arn)) + .set_external_id(self.external_id) + .set_role_session_name(Some(session_name)) + .build() + .expect("operation is valid"); + + AssumeRoleProvider { + sts: client, + conf: config, + op: operation, + } + } +} + +impl AssumeRoleProvider { + #[tracing::instrument( + name = "assume_role", + level = "info", + skip(self), + fields(op = ?self.op) + )] + async fn credentials(&self) -> credentials::Result { + tracing::info!("assuming role"); + + tracing::debug!("retrieving assumed credentials"); + let op = self + .op + .clone() + .make_operation(&self.conf) + .await + .expect("valid operation"); + + let assumed = self.sts.call(op).in_current_span().await; + match assumed { + Ok(assumed) => { + tracing::debug!( + access_key_id = ?assumed.credentials.as_ref().map(|c| &c.access_key_id), + "obtained assumed credentials" + ); + super::util::into_credentials(assumed.credentials, "AssumeRoleProvider") + } + Err(SdkError::ServiceError { err, raw }) => { + match err.kind { + AssumeRoleErrorKind::RegionDisabledException(_) + | AssumeRoleErrorKind::MalformedPolicyDocumentException(_) => { + return Err(CredentialsError::invalid_configuration( + SdkError::ServiceError { err, raw }, + )) + } + _ => {} + } + tracing::warn!(error = ?err.message(), "sts refused to grant assume role"); + Err(CredentialsError::provider_error(SdkError::ServiceError { + err, + raw, + })) + } + Err(err) => Err(CredentialsError::provider_error(err)), + } + } +} + +impl ProvideCredentials for AssumeRoleProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials + where + Self: 'a, + { + future::ProvideCredentials::new(self.credentials()) + } +} diff --git a/patch/aws-config/src/sts/util.rs b/patch/aws-config/src/sts/util.rs new file mode 100644 index 0000000000000..68d6ec844be52 --- /dev/null +++ b/patch/aws-config/src/sts/util.rs @@ -0,0 +1,53 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_sdk_sts::model::Credentials as StsCredentials; +use aws_types::credentials::{self, CredentialsError}; +use aws_types::Credentials as AwsCredentials; + +use std::convert::TryFrom; +use std::time::{SystemTime, UNIX_EPOCH}; + +/// Convert STS credentials to aws_auth::Credentials +pub(crate) fn into_credentials( + sts_credentials: Option, + provider_name: &'static str, +) -> credentials::Result { + let sts_credentials = sts_credentials + .ok_or_else(|| CredentialsError::unhandled("STS credentials must be defined"))?; + let expiration = SystemTime::try_from( + sts_credentials + .expiration + .ok_or_else(|| CredentialsError::unhandled("missing expiration"))?, + ) + .map_err(|_| { + CredentialsError::unhandled( + "credential expiration time cannot be represented by a SystemTime", + ) + })?; + Ok(AwsCredentials::new( + sts_credentials + .access_key_id + .ok_or_else(|| CredentialsError::unhandled("access key id missing from result"))?, + sts_credentials + .secret_access_key + .ok_or_else(|| CredentialsError::unhandled("secret access token missing"))?, + sts_credentials.session_token, + Some(expiration), + provider_name, + )) +} + +/// Create a default STS session name +/// +/// STS Assume Role providers MUST assign a name to their generated session. When a user does not +/// provide a name for the session, the provider will choose a name composed of a base + a timestamp, +/// e.g. `profile-file-provider-123456789` +pub(crate) fn default_session_name(base: &str) -> String { + let now = SystemTime::now() + .duration_since(UNIX_EPOCH) + .expect("post epoch"); + format!("{}-{}", base, now.as_millis()) +} diff --git a/patch/aws-config/src/test_case.rs b/patch/aws-config/src/test_case.rs new file mode 100644 index 0000000000000..4d4988b7debf4 --- /dev/null +++ b/patch/aws-config/src/test_case.rs @@ -0,0 +1,253 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use crate::provider_config::ProviderConfig; + +use aws_smithy_async::rt::sleep::{AsyncSleep, Sleep, TokioSleep}; +use aws_smithy_client::dvr::{NetworkTraffic, RecordingConnection, ReplayingConnection}; +use aws_smithy_client::erase::DynConnector; +use aws_smithy_client::http_connector::HttpSettings; +use aws_types::credentials::{self, ProvideCredentials}; +use aws_types::os_shim_internal::{Env, Fs}; + +use serde::Deserialize; + +use crate::connector::default_connector; +use std::collections::HashMap; +use std::error::Error; +use std::fmt::Debug; +use std::future::Future; +use std::path::{Path, PathBuf}; +use std::time::{Duration, UNIX_EPOCH}; + +/// Test case credentials +/// +/// Credentials for use in test cases. These implement Serialize/Deserialize and have a +/// non-hidden debug implementation. +#[derive(Deserialize, Debug, Eq, PartialEq)] +struct Credentials { + access_key_id: String, + secret_access_key: String, + session_token: Option, + expiry: Option, +} + +/// Convert real credentials to test credentials +/// +/// Comparing equality on real credentials works, but it's a pain because the Debug implementation +/// hides the actual keys +impl From<&aws_types::Credentials> for Credentials { + fn from(credentials: &aws_types::Credentials) -> Self { + Self { + access_key_id: credentials.access_key_id().into(), + secret_access_key: credentials.secret_access_key().into(), + session_token: credentials.session_token().map(ToString::to_string), + expiry: credentials + .expiry() + .map(|t| t.duration_since(UNIX_EPOCH).unwrap().as_secs()), + } + } +} + +impl From for Credentials { + fn from(credentials: aws_types::Credentials) -> Self { + (&credentials).into() + } +} + +/// Credentials test environment +/// +/// A credentials test environment is a directory containing: +/// - an `fs` directory. This is loaded into the test as if it was mounted at `/` +/// - an `env.json` file containing environment variables +/// - an `http-traffic.json` file containing an http traffic log from [`dvr`](aws_smithy_client::dvr) +/// - a `test-case.json` file defining the expected output of the test +pub struct TestEnvironment { + env: Env, + fs: Fs, + network_traffic: NetworkTraffic, + metadata: Metadata, + base_dir: PathBuf, +} + +/// Connector which expects no traffic +pub fn no_traffic_connector() -> DynConnector { + DynConnector::new(ReplayingConnection::new(vec![])) +} + +#[derive(Debug)] +struct InstantSleep; +impl AsyncSleep for InstantSleep { + fn sleep(&self, _duration: Duration) -> Sleep { + Sleep::new(std::future::ready(())) + } +} + +#[derive(Deserialize)] +pub enum GenericTestResult { + Ok(T), + ErrorContains(String), +} + +impl GenericTestResult +where + T: PartialEq + Debug, +{ + pub fn assert_matches(&self, result: Result, impl Error>) { + match (result, &self) { + (Ok(actual), GenericTestResult::Ok(expected)) => { + assert_eq!(expected, &actual.into(), "incorrect result was returned") + } + (Err(err), GenericTestResult::ErrorContains(substr)) => { + assert!( + format!("{}", err).contains(substr), + "`{}` did not contain `{}`", + err, + substr + ) + } + (Err(actual_error), GenericTestResult::Ok(expected_creds)) => panic!( + "expected credentials ({:?}) but an error was returned: {}", + expected_creds, actual_error + ), + (Ok(creds), GenericTestResult::ErrorContains(substr)) => panic!( + "expected an error containing: `{}`, but a result was returned: {:?}", + substr, + creds.into() + ), + } + } +} + +type TestResult = GenericTestResult; + +#[derive(Deserialize)] +pub struct Metadata { + result: TestResult, + docs: String, + name: String, +} + +impl TestEnvironment { + pub fn from_dir(dir: impl AsRef) -> Result> { + let dir = dir.as_ref(); + let env = std::fs::read_to_string(dir.join("env.json")) + .map_err(|e| format!("failed to load env: {}", e))?; + let env: HashMap = + serde_json::from_str(&env).map_err(|e| format!("failed to parse env: {}", e))?; + let env = Env::from(env); + let fs = Fs::from_test_dir(dir.join("fs"), "/"); + let network_traffic = std::fs::read_to_string(dir.join("http-traffic.json")) + .map_err(|e| format!("failed to load http traffic: {}", e))?; + let network_traffic: NetworkTraffic = serde_json::from_str(&network_traffic)?; + + let metadata: Metadata = serde_json::from_str( + &std::fs::read_to_string(dir.join("test-case.json")) + .map_err(|e| format!("failed to load test case: {}", e))?, + )?; + Ok(TestEnvironment { + base_dir: dir.into(), + env, + fs, + network_traffic, + metadata, + }) + } + + pub async fn provider_config(&self) -> (ReplayingConnection, ProviderConfig) { + let connector = ReplayingConnection::new(self.network_traffic.events().clone()); + ( + connector.clone(), + ProviderConfig::empty() + .with_fs(self.fs.clone()) + .with_env(self.env.clone()) + .with_http_connector(DynConnector::new(connector.clone())) + .with_sleep(TokioSleep::new()) + .load_default_region() + .await, + ) + } + + #[allow(unused)] + /// Record a test case from live (remote) HTTPS traffic + /// + /// The `default_connector()` from the crate will be used + pub async fn execute_from_live_traffic(&self, make_provider: impl Fn(ProviderConfig) -> F) + where + F: Future, + P: ProvideCredentials, + { + // swap out the connector generated from `http-traffic.json` for a real connector: + let settings = HttpSettings::default(); + let (_test_connector, config) = self.provider_config().await; + let live_connector = default_connector(&settings, config.sleep()).unwrap(); + let live_connector = RecordingConnection::new(live_connector); + let config = config.with_http_connector(DynConnector::new(live_connector.clone())); + let provider = make_provider(config).await; + let result = provider.provide_credentials().await; + std::fs::write( + self.base_dir.join("http-traffic-recorded.json"), + serde_json::to_string(&live_connector.network_traffic()).unwrap(), + ) + .unwrap(); + self.check_results(result); + } + + #[allow(dead_code)] + /// Execute the test suite & record a new traffic log + /// + /// A connector will be created with the factory, then request traffic will be recorded. + /// Response are generated from the existing http-traffic.json. + pub async fn execute_and_update(&self, make_provider: impl Fn(ProviderConfig) -> F) + where + F: Future, + P: ProvideCredentials, + { + let (connector, config) = self.provider_config().await; + let recording_connector = RecordingConnection::new(connector); + let config = config.with_http_connector(DynConnector::new(recording_connector.clone())); + let provider = make_provider(config).await; + let result = provider.provide_credentials().await; + std::fs::write( + self.base_dir.join("http-traffic-recorded.json"), + serde_json::to_string(&recording_connector.network_traffic()).unwrap(), + ) + .unwrap(); + self.check_results(result); + } + + fn log_info(&self) { + eprintln!("test case: {}. {}", self.metadata.name, self.metadata.docs); + } + + /// Execute a test case. Failures lead to panics. + pub async fn execute(&self, make_provider: impl Fn(ProviderConfig) -> F) + where + F: Future, + P: ProvideCredentials, + { + let (connector, conf) = self.provider_config().await; + let provider = make_provider(conf).await; + let result = provider.provide_credentials().await; + tokio::time::pause(); + self.log_info(); + self.check_results(result); + // todo: validate bodies + match connector + .validate( + &["CONTENT-TYPE", "x-aws-ec2-metadata-token"], + |_expected, _actual| Ok(()), + ) + .await + { + Ok(()) => {} + Err(e) => panic!("{}", e), + } + } + + fn check_results(&self, result: credentials::Result) { + self.metadata.result.assert_matches(result); + } +} diff --git a/patch/aws-config/src/web_identity_token.rs b/patch/aws-config/src/web_identity_token.rs new file mode 100644 index 0000000000000..c44452753081f --- /dev/null +++ b/patch/aws-config/src/web_identity_token.rs @@ -0,0 +1,343 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Load Credentials from Web Identity Tokens +//! +//! Web identity tokens can be loaded from file. The path may be set in one of three ways: +//! 1. [Environment Variables](#environment-variable-configuration) +//! 2. [AWS profile](#aws-profile-configuration) defined in `~/.aws/config` +//! 3. Static configuration via [`static_configuration`](Builder::static_configuration) +//! +//! _Note: [WebIdentityTokenCredentialsProvider] is part of the [default provider chain](crate::default_provider). +//! Unless you need specific behavior or configuration overrides, it is recommended to use the +//! default chain instead of using this provider directly. This client should be considered a "low level" +//! client as it does not include caching or profile-file resolution when used in isolation._ +//! +//! ## Environment Variable Configuration +//! WebIdentityTokenCredentialProvider will load the following environment variables: +//! - `AWS_WEB_IDENTITY_TOKEN_FILE`: **required**, location to find the token file containing a JWT token +//! - `AWS_ROLE_ARN`: **required**, role ARN to assume +//! - `AWS_IAM_ROLE_SESSION_NAME`: **optional**: Session name to use when assuming the role +//! +//! ## AWS Profile Configuration +//! _Note: Configuration of the web identity token provider via a shared profile is only supported +//! when using the [`ProfileFileCredentialsProvider`](crate::profile::credentials)._ +//! +//! Web identity token credentials can be loaded from `~/.aws/config` in two ways: +//! 1. Directly: +//! ```ini +//! [profile default] +//! role_arn = arn:aws:iam::1234567890123:role/RoleA +//! web_identity_token_file = /token.jwt +//! ``` +//! +//! 2. As a source profile for another role: +//! +//! ```ini +//! [profile default] +//! role_arn = arn:aws:iam::123456789:role/RoleA +//! source_profile = base +//! +//! [profile base] +//! role_arn = arn:aws:iam::123456789012:role/s3-reader +//! web_identity_token_file = /token.jwt +//! ``` +//! +//! # Examples +//! Web Identity Token providers are part of the [default chain](crate::default_provider::credentials). +//! However, they may be directly constructed if you don't want to use the default provider chain. +//! Unless overridden with [`static_configuration`](Builder::static_configuration), the provider will +//! load configuration from environment variables. +//! +//! ```no_run +//! # async fn test() { +//! use aws_config::web_identity_token::WebIdentityTokenCredentialsProvider; +//! use aws_config::provider_config::ProviderConfig; +//! let provider = WebIdentityTokenCredentialsProvider::builder() +//! .configure(&ProviderConfig::with_default_region().await) +//! .build(); +//! # } +//! ``` + +use aws_sdk_sts::Region; +use aws_types::os_shim_internal::{Env, Fs}; + +use crate::provider_config::ProviderConfig; +use crate::sts; +use aws_sdk_sts::middleware::DefaultMiddleware; +use aws_smithy_client::erase::DynConnector; +use aws_types::credentials::{self, future, CredentialsError, ProvideCredentials}; +use std::borrow::Cow; +use std::path::{Path, PathBuf}; +use tracing::Instrument; + +const ENV_VAR_TOKEN_FILE: &str = "AWS_WEB_IDENTITY_TOKEN_FILE"; +const ENV_VAR_ROLE_ARN: &str = "AWS_ROLE_ARN"; +const ENV_VAR_SESSION_NAME: &str = "AWS_ROLE_SESSION_NAME"; + +/// Credential provider to load credentials from Web Identity Tokens +/// +/// See Module documentation for more details +#[derive(Debug)] +pub struct WebIdentityTokenCredentialsProvider { + source: Source, + fs: Fs, + client: aws_smithy_client::Client, + region: Option, +} + +impl WebIdentityTokenCredentialsProvider { + /// Builder for this credentials provider + pub fn builder() -> Builder { + Builder::default() + } +} + +#[derive(Debug)] +enum Source { + Env(Env), + Static(StaticConfiguration), +} + +/// Statically configured WebIdentityToken configuration +#[derive(Debug, Clone)] +pub struct StaticConfiguration { + /// Location of the file containing the web identity token + pub web_identity_token_file: PathBuf, + + /// RoleArn to assume + pub role_arn: String, + + /// Session name to use when assuming the role + pub session_name: String, +} + +impl ProvideCredentials for WebIdentityTokenCredentialsProvider { + fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a> + where + Self: 'a, + { + future::ProvideCredentials::new(self.credentials()) + } +} + +impl WebIdentityTokenCredentialsProvider { + fn source(&self) -> Result, CredentialsError> { + match &self.source { + Source::Env(env) => { + let token_file = env.get(ENV_VAR_TOKEN_FILE).map_err(|_| { + CredentialsError::not_loaded(format!("${} was not set", ENV_VAR_TOKEN_FILE)) + })?; + let role_arn = env.get(ENV_VAR_ROLE_ARN).map_err(|_| { + CredentialsError::invalid_configuration( + "AWS_ROLE_ARN environment variable must be set", + ) + })?; + let session_name = env + .get(ENV_VAR_SESSION_NAME) + .unwrap_or_else(|_| sts::util::default_session_name("web-identity-token")); + Ok(Cow::Owned(StaticConfiguration { + web_identity_token_file: token_file.into(), + role_arn, + session_name, + })) + } + Source::Static(conf) => Ok(Cow::Borrowed(conf)), + } + } + async fn credentials(&self) -> credentials::Result { + let conf = self.source()?; + load_credentials( + &self.fs, + &self.client, + &self.region.as_ref().cloned().ok_or_else(|| { + CredentialsError::invalid_configuration( + "region is required for WebIdentityTokenProvider", + ) + })?, + &conf.web_identity_token_file, + &conf.role_arn, + &conf.session_name, + ) + .instrument(tracing::debug_span!( + "load_credentials", + provider = "WebIdentityToken" + )) + .await + } +} + +/// Builder for [`WebIdentityTokenCredentialsProvider`](WebIdentityTokenCredentialsProvider) +#[derive(Default)] +pub struct Builder { + source: Option, + config: Option, +} + +impl Builder { + /// Configure generic options of the [WebIdentityTokenCredentialsProvider] + /// + /// # Examples + /// ```no_run + /// # async fn test() { + /// use aws_config::web_identity_token::WebIdentityTokenCredentialsProvider; + /// use aws_config::provider_config::ProviderConfig; + /// let provider = WebIdentityTokenCredentialsProvider::builder() + /// .configure(&ProviderConfig::with_default_region().await) + /// .build(); + /// # } + /// ``` + pub fn configure(mut self, provider_config: &ProviderConfig) -> Self { + self.config = Some(provider_config.clone()); + self + } + + /// Configure this builder to use [`StaticConfiguration`](StaticConfiguration) + /// + /// WebIdentityToken providers load credentials from the file system. The file system path used + /// may either determine be loaded from environment variables (default), or via a statically + /// configured path. + pub fn static_configuration(mut self, config: StaticConfiguration) -> Self { + self.source = Some(Source::Static(config)); + self + } + + /// Build a [`WebIdentityTokenCredentialsProvider`] + /// + /// ## Panics + /// If no connector has been enabled via crate features and no connector has been provided via the + /// builder, this function will panic. + pub fn build(self) -> WebIdentityTokenCredentialsProvider { + let conf = self.config.unwrap_or_default(); + let client = conf.sts_client(); + let source = self.source.unwrap_or_else(|| Source::Env(conf.env())); + WebIdentityTokenCredentialsProvider { + source, + fs: conf.fs(), + client, + region: conf.region(), + } + } +} + +async fn load_credentials( + fs: &Fs, + client: &aws_smithy_client::Client, + region: &Region, + token_file: impl AsRef, + role_arn: &str, + session_name: &str, +) -> credentials::Result { + let token = fs + .read_to_end(token_file) + .await + .map_err(CredentialsError::provider_error)?; + let token = String::from_utf8(token).map_err(|_utf_8_error| { + CredentialsError::unhandled("WebIdentityToken was not valid UTF-8") + })?; + let conf = aws_sdk_sts::Config::builder() + .region(region.clone()) + .build(); + + let operation = aws_sdk_sts::operation::AssumeRoleWithWebIdentity::builder() + .role_arn(role_arn) + .role_session_name(session_name) + .web_identity_token(token) + .build() + .expect("valid operation") + .make_operation(&conf) + .await + .expect("valid operation"); + let resp = client.call(operation).await.map_err(|sdk_error| { + tracing::warn!(error = ?sdk_error, "sts returned an error assuming web identity role"); + CredentialsError::provider_error(sdk_error) + })?; + sts::util::into_credentials(resp.credentials, "WebIdentityToken") +} + +#[cfg(test)] +mod test { + use crate::web_identity_token::{ + Builder, ENV_VAR_ROLE_ARN, ENV_VAR_SESSION_NAME, ENV_VAR_TOKEN_FILE, + }; + + use aws_sdk_sts::Region; + use aws_types::os_shim_internal::{Env, Fs}; + + use crate::provider_config::ProviderConfig; + use crate::test_case::no_traffic_connector; + use aws_types::credentials::CredentialsError; + use std::collections::HashMap; + + #[tokio::test] + async fn unloaded_provider() { + // empty environment + let conf = ProviderConfig::empty() + .with_env(Env::from_slice(&[])) + .with_http_connector(no_traffic_connector()) + .with_region(Some(Region::from_static("us-east-1"))); + + let provider = Builder::default().configure(&conf).build(); + let err = provider + .credentials() + .await + .expect_err("should fail, provider not loaded"); + match err { + CredentialsError::CredentialsNotLoaded { .. } => { /* ok */ } + _ => panic!("incorrect error variant"), + } + } + + #[tokio::test] + async fn missing_env_var() { + let env = Env::from_slice(&[(ENV_VAR_TOKEN_FILE, "/token.jwt")]); + let region = Some(Region::new("us-east-1")); + let provider = Builder::default() + .configure( + &ProviderConfig::empty() + .with_region(region) + .with_env(env) + .with_http_connector(no_traffic_connector()), + ) + .build(); + let err = provider + .credentials() + .await + .expect_err("should fail, provider not loaded"); + assert!( + format!("{}", err).contains("AWS_ROLE_ARN"), + "`{}` did not contain expected string", + err + ); + match err { + CredentialsError::InvalidConfiguration { .. } => { /* ok */ } + _ => panic!("incorrect error variant"), + } + } + + #[tokio::test] + async fn fs_missing_file() { + let env = Env::from_slice(&[ + (ENV_VAR_TOKEN_FILE, "/token.jwt"), + (ENV_VAR_ROLE_ARN, "arn:aws:iam::123456789123:role/test-role"), + (ENV_VAR_SESSION_NAME, "test-session"), + ]); + let fs = Fs::from_raw_map(HashMap::new()); + let provider = Builder::default() + .configure( + &ProviderConfig::empty() + .with_http_connector(no_traffic_connector()) + .with_region(Some(Region::new("us-east-1"))) + .with_env(env) + .with_fs(fs), + ) + .build(); + let err = provider.credentials().await.expect_err("no JWT token"); + match err { + CredentialsError::ProviderError { .. } => { /* ok */ } + _ => panic!("incorrect error variant"), + } + } +} From 7270b1fe489bfb5fd9a480fb7fcb63680de86cea Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Sun, 29 May 2022 22:28:18 -0400 Subject: [PATCH 5/7] LOG-2552: replace Ring with OpenSSL in aws-sigv4 --- Cargo.lock | 4 +- Cargo.toml | 3 +- patch/aws-sigv4/.cargo-checksum.json | 1 + patch/aws-sigv4/Cargo.toml | 91 +++ patch/aws-sigv4/LICENSE | 175 ++++ patch/aws-sigv4/README.md | 9 + patch/aws-sigv4/src/date_time.rs | 144 ++++ patch/aws-sigv4/src/event_stream.rs | 222 ++++++ .../src/http_request/canonical_request.rs | 744 ++++++++++++++++++ patch/aws-sigv4/src/http_request/mod.rs | 56 ++ .../src/http_request/query_writer.rs | 165 ++++ patch/aws-sigv4/src/http_request/settings.rs | 79 ++ patch/aws-sigv4/src/http_request/sign.rs | 554 +++++++++++++ patch/aws-sigv4/src/http_request/test.rs | 136 ++++ .../aws-sigv4/src/http_request/url_escape.rs | 14 + patch/aws-sigv4/src/lib.rs | 226 ++++++ patch/aws-sigv4/src/sign.rs | 143 ++++ 17 files changed, 2762 insertions(+), 4 deletions(-) create mode 100644 patch/aws-sigv4/.cargo-checksum.json create mode 100644 patch/aws-sigv4/Cargo.toml create mode 100644 patch/aws-sigv4/LICENSE create mode 100644 patch/aws-sigv4/README.md create mode 100644 patch/aws-sigv4/src/date_time.rs create mode 100644 patch/aws-sigv4/src/event_stream.rs create mode 100644 patch/aws-sigv4/src/http_request/canonical_request.rs create mode 100644 patch/aws-sigv4/src/http_request/mod.rs create mode 100644 patch/aws-sigv4/src/http_request/query_writer.rs create mode 100644 patch/aws-sigv4/src/http_request/settings.rs create mode 100644 patch/aws-sigv4/src/http_request/sign.rs create mode 100644 patch/aws-sigv4/src/http_request/test.rs create mode 100644 patch/aws-sigv4/src/http_request/url_escape.rs create mode 100644 patch/aws-sigv4/src/lib.rs create mode 100644 patch/aws-sigv4/src/sign.rs diff --git a/Cargo.lock b/Cargo.lock index 90bec0340643b..cd8805859ac88 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -794,8 +794,6 @@ dependencies = [ [[package]] name = "aws-sigv4" version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea07a5a108ee538793d681d608057218df95c5575f6c0699a1973c27a09334b2" dependencies = [ "aws-smithy-eventstream", "aws-smithy-http", @@ -804,9 +802,9 @@ dependencies = [ "hex", "http", "once_cell", + "openssl", "percent-encoding", "regex", - "ring", "time 0.3.7", "tracing 0.1.32", ] diff --git a/Cargo.toml b/Cargo.toml index 1804a6117c703..8981837bde707 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -149,7 +149,7 @@ aws-sdk-cloudwatchlogs = { version = "0.9.0", optional = true, default-features aws-sdk-elasticsearch = {version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } aws-sdk-firehose = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } aws-sdk-kinesis = { version = "0.9.0", optional = true, default-features = false, features = ["native-tls"] } -aws-sigv4 = { version = "0.9.0", optional = true } +aws-sigv4 = { version = "0.9.0", optional = true, features = ["openssl"] } aws-smithy-client = { version = "0.39.0", optional = true, default-features = false, features = ["native-tls"] } aws-smithy-http = { version = "0.39.0", optional = true } @@ -335,6 +335,7 @@ leveldb-sys = { git = "https://github.com/vectordotdev/leveldb-sys.git", branch # https://github.com/chronotope/chrono/pull/578 chrono = { git = "https://github.com/vectordotdev/chrono.git", branch = "no-default-time" } aws-config = { path = "patch/aws-config" } +aws-sigv4 = { path = "patch/aws-sigv4" } [features] ocp-logging = [ diff --git a/patch/aws-sigv4/.cargo-checksum.json b/patch/aws-sigv4/.cargo-checksum.json new file mode 100644 index 0000000000000..98cfadd1c1d25 --- /dev/null +++ b/patch/aws-sigv4/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"b7e5d4567f421b1f149d91668c7767639fc4e799f57af5a0184389be349d78ce","LICENSE":"09e8a9bcec8067104652c168685ab0931e7868f9c8284b66f5ae6edae5f1130b","README.md":"a923eafae61ba2ac310d12783e63004583012fc73e2bf2e9ad5d99dc6735200a","src/date_time.rs":"d4afa179d55382951f33d31e18f93d8f6d70ec09575081cf4b3ad5aa7ef9989d","src/event_stream.rs":"3fb2a123e1152d2049dc71c3346c240ccd6975ac6bb8efad8f816ea84f61beba","src/http_request/canonical_request.rs":"1cb07c07e4884adcae5e14f74f5d6350be423d77ac5023c4f4b62dcc7c4fd533","src/http_request/mod.rs":"a9549a92f9c7ce75a56ef0564cb5d5209358215f86c5710bf7c32c18243b82d2","src/http_request/query_writer.rs":"277acbd30c70d2366edb0aa52425d0de5f9a5a185f779b298609e3e9dc4ed1df","src/http_request/settings.rs":"ba24ed298a7b7bf67fce8a47d9c01dd82d1bfc5233447d9c888961316b38728e","src/http_request/sign.rs":"93b95e2174e9cd7d58a74aca61d517a5e9842737ee46396db7b10b4e33910e70","src/http_request/test.rs":"52c0ac478d09c5fd232fcbfd03a36156e4310026d55872e0fdb3a241272391f6","src/http_request/url_escape.rs":"fc71739062595ab78a27fb9cc613e3c19d2fd8b0b4ea2ed8e0c47d2a8e12bc8b","src/lib.rs":"d37cb8d1eb05b83ca25d59e86b9072e4075746b054fab98b083641d4d9351ec5","src/sign.rs":"55cfbcbabe4b4b50f0d2d265733995cadf3fbded5b9e357cf1a73aa322907685"},"package":"ea07a5a108ee538793d681d608057218df95c5575f6c0699a1973c27a09334b2"} \ No newline at end of file diff --git a/patch/aws-sigv4/Cargo.toml b/patch/aws-sigv4/Cargo.toml new file mode 100644 index 0000000000000..2e946e02e67bd --- /dev/null +++ b/patch/aws-sigv4/Cargo.toml @@ -0,0 +1,91 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies +# +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) + +[package] +edition = "2018" +name = "aws-sigv4" +version = "0.9.0" +authors = ["AWS Rust SDK Team ", "David Barsky "] +exclude = ["aws-sig-v4-test-suite/*"] +description = "SigV4 signer for HTTP requests and Event Stream messages." +license = "Apache-2.0" +repository = "https://github.com/awslabs/smithy-rs" +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] +targets = ["x86_64-unknown-linux-gnu"] +[dependencies.aws-smithy-eventstream] +version = "0.39.0" +optional = true + +[dependencies.aws-smithy-http] +version = "0.39.0" + +[dependencies.bytes] +version = "1" +optional = true + +[dependencies.form_urlencoded] +version = "1.0" +optional = true + +[dependencies.hex] +version = "0.4" + +[dependencies.http] +version = "0.2" +optional = true + +[dependencies.once_cell] +version = "1.8" + +[dependencies.percent-encoding] +version = "2.1" +optional = true + +[dependencies.regex] +version = "1.5" + +[dependencies.ring] +version = "0.16" +optional = true + +[dependencies.openssl] +version = "0.10.38" +optional = true + +[dependencies.time] +version = "0.3.5" + +[dependencies.tracing] +version = "0.1" + +[dev-dependencies.bytes] +version = "1" + +[dev-dependencies.httparse] +version = "1.5" + +[dev-dependencies.pretty_assertions] +version = "1.0" + +[dev-dependencies.proptest] +version = "1" + +[dev-dependencies.time] +version = "0.3.4" +features = ["parsing"] + +[features] +default = ["sign-http"] +sign-eventstream = ["aws-smithy-eventstream", "bytes"] +sign-http = ["http", "percent-encoding", "form_urlencoded"] diff --git a/patch/aws-sigv4/LICENSE b/patch/aws-sigv4/LICENSE new file mode 100644 index 0000000000000..67db8588217f2 --- /dev/null +++ b/patch/aws-sigv4/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/patch/aws-sigv4/README.md b/patch/aws-sigv4/README.md new file mode 100644 index 0000000000000..6e69eb5e9019f --- /dev/null +++ b/patch/aws-sigv4/README.md @@ -0,0 +1,9 @@ +# aws-sigv4 + +Low-level SigV4 request signing implementations. Customers will not generally need to use this crate directly. If you +need to manually sign requests, [aws-sig-auth](https://crates.io/crates/aws-sig-auth) offers a higher level interface +for signing. + + +This crate is part of the [AWS SDK for Rust](https://awslabs.github.io/aws-sdk-rust/) and the [smithy-rs](https://github.com/awslabs/smithy-rs) code generator. In most cases, it should not be used directly. + diff --git a/patch/aws-sigv4/src/date_time.rs b/patch/aws-sigv4/src/date_time.rs new file mode 100644 index 0000000000000..bf05278ef6618 --- /dev/null +++ b/patch/aws-sigv4/src/date_time.rs @@ -0,0 +1,144 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +// Some of the functions in this file are unused when disabling certain features +#![allow(dead_code)] + +use std::time::SystemTime; +use time::{OffsetDateTime, Time}; + +/// Truncates the subseconds from the given `SystemTime` to zero. +pub(crate) fn truncate_subsecs(time: SystemTime) -> SystemTime { + let date_time = OffsetDateTime::from(time); + let time = date_time.time(); + date_time + .replace_time( + Time::from_hms(time.hour(), time.minute(), time.second()).expect("was already a time"), + ) + .into() +} + +/// Formats a `SystemTime` in `YYYYMMDD` format. +pub(crate) fn format_date(time: SystemTime) -> String { + let time = OffsetDateTime::from(time); + format!( + "{:04}{:02}{:02}", + time.year(), + u8::from(time.month()), + time.day() + ) +} + +/// Formats a `SystemTime` in `YYYYMMDD'T'HHMMSS'Z'` format. +pub(crate) fn format_date_time(time: SystemTime) -> String { + let time = OffsetDateTime::from(time); + format!( + "{:04}{:02}{:02}T{:02}{:02}{:02}Z", + time.year(), + u8::from(time.month()), + time.day(), + time.hour(), + time.minute(), + time.second() + ) +} + +/// Parse functions that are only needed for unit tests. +#[cfg(test)] +pub(crate) mod test_parsers { + use std::{borrow::Cow, error::Error, fmt, time::SystemTime}; + use time::format_description; + use time::{Date, PrimitiveDateTime, Time}; + + const DATE_TIME_FORMAT: &str = "[year][month][day]T[hour][minute][second]Z"; + const DATE_FORMAT: &str = "[year][month][day]"; + + /// Parses `YYYYMMDD'T'HHMMSS'Z'` formatted dates into a `SystemTime`. + pub(crate) fn parse_date_time(date_time_str: &str) -> Result { + let date_time = PrimitiveDateTime::parse( + date_time_str, + &format_description::parse(DATE_TIME_FORMAT).unwrap(), + ) + .map_err(|err| ParseError(err.to_string().into()))? + .assume_utc(); + Ok(date_time.into()) + } + + /// Parses `YYYYMMDD` formatted dates into a `SystemTime`. + pub(crate) fn parse_date(date_str: &str) -> Result { + let date_time = PrimitiveDateTime::new( + Date::parse(date_str, &format_description::parse(DATE_FORMAT).unwrap()) + .map_err(|err| ParseError(err.to_string().into()))?, + Time::from_hms(0, 0, 0).unwrap(), + ) + .assume_utc(); + Ok(date_time.into()) + } + + #[derive(Debug)] + pub(crate) struct ParseError(Cow<'static, str>); + + impl fmt::Display for ParseError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "failed to parse time: {}", self.0) + } + } + + impl Error for ParseError {} +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::date_time::test_parsers::{parse_date, parse_date_time}; + use time::format_description::well_known::Rfc3339; + + #[test] + fn date_format() { + let time: SystemTime = OffsetDateTime::parse("2039-02-04T23:01:09.104Z", &Rfc3339) + .unwrap() + .into(); + assert_eq!("20390204", format_date(time)); + let time: SystemTime = OffsetDateTime::parse("0100-01-02T00:00:00.000Z", &Rfc3339) + .unwrap() + .into(); + assert_eq!("01000102", format_date(time)); + } + + #[test] + fn date_time_format() { + let time: SystemTime = OffsetDateTime::parse("2039-02-04T23:01:09.104Z", &Rfc3339) + .unwrap() + .into(); + assert_eq!("20390204T230109Z", format_date_time(time)); + let time: SystemTime = OffsetDateTime::parse("0100-01-02T00:00:00.000Z", &Rfc3339) + .unwrap() + .into(); + assert_eq!("01000102T000000Z", format_date_time(time)); + } + + #[test] + fn date_time_roundtrip() { + let time = parse_date_time("20150830T123600Z").unwrap(); + assert_eq!("20150830T123600Z", format_date_time(time)); + } + + #[test] + fn date_roundtrip() { + let time = parse_date("20150830").unwrap(); + assert_eq!("20150830", format_date(time)); + } + + #[test] + fn test_truncate_subsecs() { + let time: SystemTime = OffsetDateTime::parse("2039-02-04T23:01:09.104Z", &Rfc3339) + .unwrap() + .into(); + let expected: SystemTime = OffsetDateTime::parse("2039-02-04T23:01:09.000Z", &Rfc3339) + .unwrap() + .into(); + assert_eq!(expected, truncate_subsecs(time)); + } +} diff --git a/patch/aws-sigv4/src/event_stream.rs b/patch/aws-sigv4/src/event_stream.rs new file mode 100644 index 0000000000000..48f1249d16ab3 --- /dev/null +++ b/patch/aws-sigv4/src/event_stream.rs @@ -0,0 +1,222 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Utilities to sign Event Stream messages. +//! +//! # Example: Signing an event stream message +//! +//! ```rust +//! use aws_sigv4::event_stream::{sign_message, SigningParams}; +//! use aws_smithy_eventstream::frame::{Header, HeaderValue, Message}; +//! use std::time::SystemTime; +//! +//! // The `last_signature` argument is the previous message's signature, or +//! // the signature of the initial HTTP request if a message hasn't been signed yet. +//! let last_signature = "example298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; +//! +//! let message_to_sign = Message::new(&b"example"[..]).add_header(Header::new( +//! "some-header", +//! HeaderValue::String("value".into()), +//! )); +//! +//! let params = SigningParams::builder() +//! .access_key("example access key") +//! .secret_key("example secret key") +//! .region("us-east-1") +//! .service_name("exampleservice") +//! .time(SystemTime::now()) +//! .settings(()) +//! .build() +//! .unwrap(); +//! +//! // Use the returned `signature` to sign the next message. +//! let (signed, signature) = +//! sign_message(&message_to_sign, &last_signature, ¶ms).into_parts(); +//! ``` + +use crate::date_time::{format_date, format_date_time, truncate_subsecs}; +use crate::sign::{calculate_signature, generate_signing_key, sha256_hex_string}; +use crate::SigningOutput; +use aws_smithy_eventstream::frame::{write_headers_to, Header, HeaderValue, Message}; +use bytes::Bytes; +use std::io::Write; +use std::time::SystemTime; + +/// Event stream signing parameters +pub type SigningParams<'a> = super::SigningParams<'a, ()>; + +/// Creates a string to sign for an Event Stream message. +fn calculate_string_to_sign( + message_payload: &[u8], + last_signature: &str, + time: SystemTime, + params: &SigningParams<'_>, +) -> Vec { + // Event Stream string to sign format is documented here: + // https://docs.aws.amazon.com/transcribe/latest/dg/how-streaming.html + let date_time_str = format_date_time(time); + let date_str = format_date(time); + + let mut sts: Vec = Vec::new(); + writeln!(sts, "AWS4-HMAC-SHA256-PAYLOAD").unwrap(); + writeln!(sts, "{}", date_time_str).unwrap(); + writeln!( + sts, + "{}/{}/{}/aws4_request", + date_str, params.region, params.service_name + ) + .unwrap(); + writeln!(sts, "{}", last_signature).unwrap(); + + let date_header = Header::new(":date", HeaderValue::Timestamp(time.into())); + let mut date_buffer = Vec::new(); + write_headers_to(&[date_header], &mut date_buffer).unwrap(); + writeln!(sts, "{}", sha256_hex_string(&date_buffer)).unwrap(); + write!(sts, "{}", sha256_hex_string(&message_payload)).unwrap(); + sts +} + +/// Signs an Event Stream message with the given `credentials`. +/// +/// Each message's signature incorporates the signature of the previous message (`last_signature`). +/// The very first message incorporates the signature of the top-level request +/// for both HTTP 2 and WebSocket. +pub fn sign_message<'a>( + message: &'a Message, + last_signature: &'a str, + params: &'a SigningParams<'a>, +) -> SigningOutput { + let message_payload = { + let mut payload = Vec::new(); + message.write_to(&mut payload).unwrap(); + payload + }; + sign_payload(Some(message_payload), last_signature, params) +} + +/// Returns a signed empty message +/// +/// Empty signed event stream messages differ from normal signed event stream +/// in that the payload is 0-bytes rather than a nested message. There is no way +/// to create a signed empty message using [`sign_message`]. +pub fn sign_empty_message<'a>( + last_signature: &'a str, + params: &'a SigningParams<'a>, +) -> SigningOutput { + sign_payload(None, last_signature, params) +} + +fn sign_payload<'a>( + message_payload: Option>, + last_signature: &'a str, + params: &'a SigningParams<'a>, +) -> SigningOutput { + // Truncate the sub-seconds up front since the timestamp written to the signed message header + // needs to exactly match the string formatted timestamp, which doesn't include sub-seconds. + let time = truncate_subsecs(params.time); + + let signing_key = + generate_signing_key(params.secret_key, time, params.region, params.service_name); + let string_to_sign = calculate_string_to_sign( + message_payload.as_ref().map(|v| &v[..]).unwrap_or(&[]), + last_signature, + time, + params, + ); + let signature = calculate_signature(signing_key, &string_to_sign); + + // Generate the signed wrapper event frame + SigningOutput::new( + Message::new(message_payload.map(Bytes::from).unwrap_or_else(Bytes::new)) + .add_header(Header::new( + ":chunk-signature", + HeaderValue::ByteArray(hex::decode(&signature).unwrap().into()), + )) + .add_header(Header::new(":date", HeaderValue::Timestamp(time.into()))), + signature, + ) +} + +#[cfg(test)] +mod tests { + use super::*; + use std::time::{Duration, UNIX_EPOCH}; + + #[test] + fn string_to_sign() { + let message_to_sign = Message::new(&b"test payload"[..]).add_header(Header::new( + "some-header", + HeaderValue::String("value".into()), + )); + let mut message_payload = Vec::new(); + message_to_sign.write_to(&mut message_payload).unwrap(); + + let params = SigningParams { + access_key: "fake access key", + secret_key: "fake secret key", + security_token: None, + region: "us-east-1", + service_name: "testservice", + time: (UNIX_EPOCH + Duration::new(123_456_789_u64, 1234u32)).into(), + settings: (), + }; + + let expected = "\ + AWS4-HMAC-SHA256-PAYLOAD\n\ + 19731129T213309Z\n\ + 19731129/us-east-1/testservice/aws4_request\n\ + be1f8c7d79ef8e1abc5254a2c70e4da3bfaf4f07328f527444e1fc6ea67273e2\n\ + 0c0e3b3bf66b59b976181bd7d401927bbd624107303c713fd1e5f3d3c8dd1b1e\n\ + f2eba0f2e95967ee9fbc6db5e678d2fd599229c0d04b11e4fc8e0f2a02a806c6\ + "; + + let last_signature = sha256_hex_string(b"last message sts"); + assert_eq!( + expected, + std::str::from_utf8(&calculate_string_to_sign( + &message_payload, + &last_signature, + params.time, + ¶ms + )) + .unwrap() + ); + } + + #[test] + fn sign() { + let message_to_sign = Message::new(&b"test payload"[..]).add_header(Header::new( + "some-header", + HeaderValue::String("value".into()), + )); + let params = SigningParams { + access_key: "fake access key", + secret_key: "fake secret key", + security_token: None, + region: "us-east-1", + service_name: "testservice", + time: (UNIX_EPOCH + Duration::new(123_456_789_u64, 1234u32)).into(), + settings: (), + }; + + let last_signature = sha256_hex_string(b"last message sts"); + let (signed, signature) = + sign_message(&message_to_sign, &last_signature, ¶ms).into_parts(); + assert_eq!(":chunk-signature", signed.headers()[0].name().as_str()); + if let HeaderValue::ByteArray(bytes) = signed.headers()[0].value() { + assert_eq!(signature, hex::encode(bytes)); + } else { + panic!("expected byte array for :chunk-signature header"); + } + assert_eq!(":date", signed.headers()[1].name().as_str()); + if let HeaderValue::Timestamp(value) = signed.headers()[1].value() { + assert_eq!(123_456_789_i64, value.secs()); + // The subseconds should have been truncated off + assert_eq!(0, value.subsec_nanos()); + } else { + panic!("expected timestamp for :date header"); + } + } +} diff --git a/patch/aws-sigv4/src/http_request/canonical_request.rs b/patch/aws-sigv4/src/http_request/canonical_request.rs new file mode 100644 index 0000000000000..1d647aaeb1a44 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/canonical_request.rs @@ -0,0 +1,744 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use super::query_writer::QueryWriter; +use super::{Error, PayloadChecksumKind, SignableBody, SignatureLocation, SigningParams}; +use crate::date_time::{format_date, format_date_time}; +use crate::http_request::sign::SignableRequest; +use crate::http_request::url_escape::percent_encode_path; +use crate::http_request::PercentEncodingMode; +use crate::sign::sha256_hex_string; +use http::header::{HeaderName, HOST, USER_AGENT}; +use http::{HeaderMap, HeaderValue, Method, Uri}; +use std::borrow::Cow; +use std::cmp::Ordering; +use std::convert::TryFrom; +use std::fmt; +use std::fmt::Formatter; +use std::str::FromStr; +use std::time::SystemTime; + +pub(crate) mod header { + pub(crate) const X_AMZ_CONTENT_SHA_256: &str = "x-amz-content-sha256"; + pub(crate) const X_AMZ_DATE: &str = "x-amz-date"; + pub(crate) const X_AMZ_SECURITY_TOKEN: &str = "x-amz-security-token"; + pub(crate) const X_AMZ_USER_AGENT: &str = "x-amz-user-agent"; +} + +pub(crate) mod param { + pub(crate) const X_AMZ_ALGORITHM: &str = "X-Amz-Algorithm"; + pub(crate) const X_AMZ_CREDENTIAL: &str = "X-Amz-Credential"; + pub(crate) const X_AMZ_DATE: &str = "X-Amz-Date"; + pub(crate) const X_AMZ_EXPIRES: &str = "X-Amz-Expires"; + pub(crate) const X_AMZ_SECURITY_TOKEN: &str = "X-Amz-Security-Token"; + pub(crate) const X_AMZ_SIGNED_HEADERS: &str = "X-Amz-SignedHeaders"; + pub(crate) const X_AMZ_SIGNATURE: &str = "X-Amz-Signature"; +} + +pub(crate) const HMAC_256: &str = "AWS4-HMAC-SHA256"; + +const UNSIGNED_PAYLOAD: &str = "UNSIGNED-PAYLOAD"; + +#[derive(Debug, PartialEq)] +pub(super) struct HeaderValues<'a> { + pub(super) content_sha256: Cow<'a, str>, + pub(super) date_time: String, + pub(super) security_token: Option<&'a str>, + pub(super) signed_headers: SignedHeaders, +} + +#[derive(Debug, PartialEq)] +pub(super) struct QueryParamValues<'a> { + pub(super) algorithm: &'static str, + pub(super) content_sha256: Cow<'a, str>, + pub(super) credential: String, + pub(super) date_time: String, + pub(super) expires: String, + pub(super) security_token: Option<&'a str>, + pub(super) signed_headers: SignedHeaders, +} + +#[derive(Debug, PartialEq)] +pub(super) enum SignatureValues<'a> { + Headers(HeaderValues<'a>), + QueryParams(QueryParamValues<'a>), +} + +impl<'a> SignatureValues<'a> { + pub(super) fn signed_headers(&self) -> &SignedHeaders { + match self { + SignatureValues::Headers(values) => &values.signed_headers, + SignatureValues::QueryParams(values) => &values.signed_headers, + } + } + + fn content_sha256(&self) -> &str { + match self { + SignatureValues::Headers(values) => &values.content_sha256, + SignatureValues::QueryParams(values) => &values.content_sha256, + } + } + + pub(super) fn as_headers(&self) -> Option<&HeaderValues<'_>> { + match self { + SignatureValues::Headers(values) => Some(values), + _ => None, + } + } + + pub(super) fn into_query_params(self) -> Result, Self> { + match self { + SignatureValues::QueryParams(values) => Ok(values), + _ => Err(self), + } + } +} + +#[derive(Debug, PartialEq)] +pub(super) struct CanonicalRequest<'a> { + pub(super) method: &'a Method, + pub(super) path: Cow<'a, str>, + pub(super) params: Option, + pub(super) headers: HeaderMap, + pub(super) values: SignatureValues<'a>, +} + +impl<'a> CanonicalRequest<'a> { + /// Construct a CanonicalRequest from a [`SignableRequest`] and [`SigningParams`]. + /// + /// The returned canonical request includes information required for signing as well + /// as query parameters or header values that go along with the signature in a request. + /// + /// ## Behavior + /// + /// There are several settings which alter signing behavior: + /// - If a `security_token` is provided as part of the credentials it will be included in the signed headers + /// - If `settings.percent_encoding_mode` specifies double encoding, `%` in the URL will be re-encoded as `%25` + /// - If `settings.payload_checksum_kind` is XAmzSha256, add a x-amz-content-sha256 with the body + /// checksum. This is the same checksum used as the "payload_hash" in the canonical request + /// - `settings.signature_location` determines where the signature will be placed in a request, + /// and also alters the kinds of signing values that go along with it in the request. + pub(super) fn from<'b>( + req: &'b SignableRequest<'b>, + params: &'b SigningParams<'b>, + ) -> Result, Error> { + // Path encoding: if specified, re-encode % as %25 + // Set method and path into CanonicalRequest + let path = req.uri().path(); + let path = match params.settings.percent_encoding_mode { + // The string is already URI encoded, we don't need to encode everything again, just `%` + PercentEncodingMode::Double => Cow::Owned(percent_encode_path(path)), + PercentEncodingMode::Single => Cow::Borrowed(path), + }; + let payload_hash = Self::payload_hash(req.body()); + + let date_time = format_date_time(params.time); + let (signed_headers, canonical_headers) = + Self::headers(req, params, &payload_hash, &date_time)?; + let signed_headers = SignedHeaders::new(signed_headers); + let values = match params.settings.signature_location { + SignatureLocation::Headers => SignatureValues::Headers(HeaderValues { + content_sha256: payload_hash, + date_time, + security_token: params.security_token, + signed_headers, + }), + SignatureLocation::QueryParams => SignatureValues::QueryParams(QueryParamValues { + algorithm: "AWS4-HMAC-SHA256", + content_sha256: payload_hash, + credential: format!( + "{}/{}/{}/{}/aws4_request", + params.access_key, + format_date(params.time), + params.region, + params.service_name, + ), + date_time, + expires: params + .settings + .expires_in + .expect("presigning requires expires_in") + .as_secs() + .to_string(), + security_token: params.security_token, + signed_headers, + }), + }; + let creq = CanonicalRequest { + method: req.method(), + path, + params: Self::params(req.uri(), &values), + headers: canonical_headers, + values, + }; + Ok(creq) + } + + fn headers( + req: &SignableRequest<'_>, + params: &SigningParams<'_>, + payload_hash: &str, + date_time: &str, + ) -> Result<(Vec, HeaderMap), Error> { + // Header computation: + // The canonical request will include headers not present in the input. We need to clone and + // normalize the headers from the original request and add: + // - host + // - x-amz-date + // - x-amz-security-token (if provided) + // - x-amz-content-sha256 (if requested by signing settings) + let mut canonical_headers = HeaderMap::with_capacity(req.headers().len()); + for (name, value) in req.headers().iter() { + // Header names and values need to be normalized according to Step 4 of https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html + // Using append instead of insert means this will not clobber headers that have the same lowercased name + canonical_headers.append( + HeaderName::from_str(&name.as_str().to_lowercase())?, + normalize_header_value(value), + ); + } + + Self::insert_host_header(&mut canonical_headers, req.uri()); + + if params.settings.signature_location == SignatureLocation::Headers { + Self::insert_date_header(&mut canonical_headers, date_time); + + if let Some(security_token) = params.security_token { + let mut sec_header = HeaderValue::from_str(security_token)?; + sec_header.set_sensitive(true); + canonical_headers.insert(header::X_AMZ_SECURITY_TOKEN, sec_header); + } + + if params.settings.payload_checksum_kind == PayloadChecksumKind::XAmzSha256 { + let header = HeaderValue::from_str(payload_hash)?; + canonical_headers.insert(header::X_AMZ_CONTENT_SHA_256, header); + } + } + + let mut signed_headers = Vec::with_capacity(canonical_headers.len()); + for (name, _) in &canonical_headers { + // The user agent header should not be signed because it may be altered by proxies + if name == USER_AGENT { + continue; + } + if params.settings.signature_location == SignatureLocation::QueryParams { + // The X-Amz-User-Agent header should not be signed if this is for a presigned URL + if name == HeaderName::from_static(header::X_AMZ_USER_AGENT) { + continue; + } + } + signed_headers.push(CanonicalHeaderName(name.clone())); + } + Ok((signed_headers, canonical_headers)) + } + + fn payload_hash<'b>(body: &'b SignableBody<'b>) -> Cow<'b, str> { + // Payload hash computation + // + // Based on the input body, set the payload_hash of the canonical request: + // Either: + // - compute a hash + // - use the precomputed hash + // - use `UnsignedPayload` + match body { + SignableBody::Bytes(data) => Cow::Owned(sha256_hex_string(data)), + SignableBody::Precomputed(digest) => Cow::Borrowed(digest.as_str()), + SignableBody::UnsignedPayload => Cow::Borrowed(UNSIGNED_PAYLOAD), + } + } + + fn params(uri: &Uri, values: &SignatureValues<'_>) -> Option { + let mut params: Vec<(Cow<'_, str>, Cow<'_, str>)> = + form_urlencoded::parse(uri.query().unwrap_or_default().as_bytes()).collect(); + fn add_param<'a>(params: &mut Vec<(Cow<'a, str>, Cow<'a, str>)>, k: &'a str, v: &'a str) { + params.push((Cow::Borrowed(k), Cow::Borrowed(v))); + } + + if let SignatureValues::QueryParams(values) = values { + add_param(&mut params, param::X_AMZ_DATE, &values.date_time); + add_param(&mut params, param::X_AMZ_EXPIRES, &values.expires); + add_param(&mut params, param::X_AMZ_ALGORITHM, values.algorithm); + add_param(&mut params, param::X_AMZ_CREDENTIAL, &values.credential); + add_param( + &mut params, + param::X_AMZ_SIGNED_HEADERS, + values.signed_headers.as_str(), + ); + if let Some(security_token) = values.security_token { + add_param(&mut params, param::X_AMZ_SECURITY_TOKEN, security_token); + } + } + // Sort by param name, and then by param value + params.sort(); + + let mut query = QueryWriter::new(uri); + query.clear_params(); + for (key, value) in params { + query.insert(&key, &value); + } + + let query = query.build_query(); + if query.is_empty() { + None + } else { + Some(query) + } + } + + fn insert_host_header( + canonical_headers: &mut HeaderMap, + uri: &Uri, + ) -> HeaderValue { + match canonical_headers.get(&HOST) { + Some(header) => header.clone(), + None => { + let authority = uri + .authority() + .expect("request uri authority must be set for signing"); + let header = HeaderValue::try_from(authority.as_str()) + .expect("endpoint must contain valid header characters"); + canonical_headers.insert(HOST, header.clone()); + header + } + } + } + + fn insert_date_header( + canonical_headers: &mut HeaderMap, + date_time: &str, + ) -> HeaderValue { + let x_amz_date = HeaderName::from_static(header::X_AMZ_DATE); + let date_header = HeaderValue::try_from(date_time).expect("date is valid header value"); + canonical_headers.insert(x_amz_date, date_header.clone()); + date_header + } +} + +impl<'a> fmt::Display for CanonicalRequest<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + writeln!(f, "{}", self.method)?; + writeln!(f, "{}", self.path)?; + writeln!(f, "{}", self.params.as_deref().unwrap_or(""))?; + // write out _all_ the headers + for header in &self.values.signed_headers().headers { + // a missing header is a bug, so we should panic. + let value = &self.headers[&header.0]; + write!(f, "{}:", header.0.as_str())?; + writeln!( + f, + "{}", + std::str::from_utf8(value.as_bytes()) + .expect("SDK request header values are valid UTF-8") + )?; + } + writeln!(f)?; + // write out the signed headers + write!(f, "{}", self.values.signed_headers().as_str())?; + writeln!(f)?; + write!(f, "{}", self.values.content_sha256())?; + Ok(()) + } +} + +/// A regex for matching on 2 or more spaces that acts on bytes. +static MULTIPLE_SPACES: once_cell::sync::Lazy = + once_cell::sync::Lazy::new(|| regex::bytes::Regex::new(r" {2,}").unwrap()); + +/// Removes excess spaces before and after a given byte string, and converts multiple sequential +/// spaces to a single space e.g. " Some example text " -> "Some example text". +/// +/// This function ONLY affects spaces and not other kinds of whitespace. +fn trim_all(text: &[u8]) -> Cow<'_, [u8]> { + // The normal trim function will trim non-breaking spaces and other various whitespace chars. + // S3 ONLY trims spaces so we use trim_matches to trim spaces only + let text = trim_spaces_from_byte_string(text); + MULTIPLE_SPACES.replace_all(text, " ".as_bytes()) +} + +/// Removes excess spaces before and after a given byte string by returning a subset of those bytes. +/// Will return an empty slice if a string is composed entirely of whitespace. +fn trim_spaces_from_byte_string(bytes: &[u8]) -> &[u8] { + let starting_index = bytes.iter().position(|b| *b != b' ').unwrap_or(0); + let ending_offset = bytes.iter().rev().position(|b| *b != b' ').unwrap_or(0); + let ending_index = bytes.len() - ending_offset; + &bytes[starting_index..ending_index] +} + +/// Works just like [trim_all] but acts on HeaderValues instead of bytes +fn normalize_header_value(header_value: &HeaderValue) -> HeaderValue { + let trimmed_value = trim_all(header_value.as_bytes()); + // This can't fail because we started with a valid HeaderValue and then only trimmed spaces + HeaderValue::from_bytes(&trimmed_value).unwrap() +} + +#[derive(Debug, PartialEq, Default)] +pub(super) struct SignedHeaders { + headers: Vec, + formatted: String, +} + +impl SignedHeaders { + fn new(mut headers: Vec) -> Self { + headers.sort(); + let formatted = Self::fmt(&headers); + SignedHeaders { headers, formatted } + } + + fn fmt(headers: &[CanonicalHeaderName]) -> String { + let mut value = String::new(); + let mut iter = headers.iter().peekable(); + while let Some(next) = iter.next() { + value += next.0.as_str(); + if iter.peek().is_some() { + value.push(';'); + } + } + value + } + + pub(super) fn as_str(&self) -> &str { + &self.formatted + } +} + +impl fmt::Display for SignedHeaders { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.formatted) + } +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct CanonicalHeaderName(HeaderName); + +impl PartialOrd for CanonicalHeaderName { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for CanonicalHeaderName { + fn cmp(&self, other: &Self) -> Ordering { + self.0.as_str().cmp(other.0.as_str()) + } +} + +#[derive(PartialEq, Debug, Clone)] +pub(super) struct SigningScope<'a> { + pub(super) time: SystemTime, + pub(super) region: &'a str, + pub(super) service: &'a str, +} + +impl<'a> fmt::Display for SigningScope<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "{}/{}/{}/aws4_request", + format_date(self.time), + self.region, + self.service + ) + } +} + +#[derive(PartialEq, Debug)] +pub(super) struct StringToSign<'a> { + pub(super) scope: SigningScope<'a>, + pub(super) time: SystemTime, + pub(super) region: &'a str, + pub(super) service: &'a str, + pub(super) hashed_creq: &'a str, +} + +impl<'a> StringToSign<'a> { + pub(crate) fn new( + time: SystemTime, + region: &'a str, + service: &'a str, + hashed_creq: &'a str, + ) -> Self { + let scope = SigningScope { + time, + region, + service, + }; + Self { + scope, + time, + region, + service, + hashed_creq, + } + } +} + +impl<'a> fmt::Display for StringToSign<'a> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + write!( + f, + "{}\n{}\n{}\n{}", + HMAC_256, + format_date_time(self.time), + self.scope.to_string(), + self.hashed_creq + ) + } +} + +#[cfg(test)] +mod tests { + use crate::date_time::test_parsers::parse_date_time; + use crate::http_request::canonical_request::{ + normalize_header_value, trim_all, CanonicalRequest, SigningScope, StringToSign, + }; + use crate::http_request::query_writer::QueryWriter; + use crate::http_request::test::{test_canonical_request, test_request, test_sts}; + use crate::http_request::{ + PayloadChecksumKind, SignableBody, SignableRequest, SigningSettings, + }; + use crate::http_request::{SignatureLocation, SigningParams}; + use crate::sign::sha256_hex_string; + use http::HeaderValue; + use http::Uri; + use pretty_assertions::assert_eq; + use proptest::proptest; + use std::time::Duration; + + fn signing_params(settings: SigningSettings) -> SigningParams<'static> { + SigningParams { + access_key: "test-access-key", + secret_key: "test-secret-key", + security_token: None, + region: "test-region", + service_name: "testservicename", + time: parse_date_time("20210511T154045Z").unwrap(), + settings, + } + } + + #[test] + fn test_set_xamz_sha_256() { + let req = test_request("get-vanilla-query-order-key-case"); + let req = SignableRequest::from(&req); + let settings = SigningSettings { + payload_checksum_kind: PayloadChecksumKind::XAmzSha256, + ..Default::default() + }; + let mut signing_params = signing_params(settings); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + assert_eq!( + creq.values.content_sha256(), + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + ); + // assert that the sha256 header was added + assert_eq!( + creq.values.signed_headers().as_str(), + "host;x-amz-content-sha256;x-amz-date" + ); + + signing_params.settings.payload_checksum_kind = PayloadChecksumKind::NoHeader; + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + assert_eq!(creq.values.signed_headers().as_str(), "host;x-amz-date"); + } + + #[test] + fn test_unsigned_payload() { + let req = test_request("get-vanilla-query-order-key-case"); + let req = SignableRequest::new( + req.method(), + req.uri(), + req.headers(), + SignableBody::UnsignedPayload, + ); + let settings = SigningSettings { + payload_checksum_kind: PayloadChecksumKind::XAmzSha256, + ..Default::default() + }; + let signing_params = signing_params(settings); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + assert_eq!(creq.values.content_sha256(), "UNSIGNED-PAYLOAD"); + assert!(creq.to_string().ends_with("UNSIGNED-PAYLOAD")); + } + + #[test] + fn test_precomputed_payload() { + let payload_hash = "44ce7dd67c959e0d3524ffac1771dfbba87d2b6b4b4e99e42034a8b803f8b072"; + let req = test_request("get-vanilla-query-order-key-case"); + let req = SignableRequest::new( + req.method(), + req.uri(), + req.headers(), + SignableBody::Precomputed(String::from(payload_hash)), + ); + let settings = SigningSettings { + payload_checksum_kind: PayloadChecksumKind::XAmzSha256, + ..Default::default() + }; + let signing_params = signing_params(settings); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + assert_eq!(creq.values.content_sha256(), payload_hash); + assert!(creq.to_string().ends_with(payload_hash)); + } + + #[test] + fn test_generate_scope() { + let expected = "20150830/us-east-1/iam/aws4_request\n"; + let scope = SigningScope { + time: parse_date_time("20150830T123600Z").unwrap(), + region: "us-east-1", + service: "iam", + }; + assert_eq!(format!("{}\n", scope.to_string()), expected); + } + + #[test] + fn test_string_to_sign() { + let time = parse_date_time("20150830T123600Z").unwrap(); + let creq = test_canonical_request("get-vanilla-query-order-key-case"); + let expected_sts = test_sts("get-vanilla-query-order-key-case"); + let encoded = sha256_hex_string(creq.as_bytes()); + + let actual = StringToSign::new(time, "us-east-1", "service", &encoded); + assert_eq!(expected_sts, actual.to_string()); + } + + #[test] + fn test_digest_of_canonical_request() { + let creq = test_canonical_request("get-vanilla-query-order-key-case"); + let expected = "816cd5b414d056048ba4f7c5386d6e0533120fb1fcfa93762cf0fc39e2cf19e0"; + let actual = sha256_hex_string(creq.as_bytes()); + assert_eq!(expected, actual); + } + + #[test] + fn test_double_url_encode_path() { + let req = test_request("double-encode-path"); + let req = SignableRequest::from(&req); + let signing_params = signing_params(SigningSettings::default()); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + + let expected = test_canonical_request("double-encode-path"); + let actual = format!("{}", creq); + assert_eq!(actual, expected); + } + + #[test] + fn test_double_url_encode() { + let req = test_request("double-url-encode"); + let req = SignableRequest::from(&req); + let signing_params = signing_params(SigningSettings::default()); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + + let expected = test_canonical_request("double-url-encode"); + let actual = format!("{}", creq); + assert_eq!(actual, expected); + } + + #[test] + fn test_tilde_in_uri() { + let req = http::Request::builder() + .uri("https://s3.us-east-1.amazonaws.com/my-bucket?list-type=2&prefix=~objprefix&single&k=&unreserved=-_.~").body("").unwrap(); + let req = SignableRequest::from(&req); + let signing_params = signing_params(SigningSettings::default()); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + assert_eq!( + Some("k=&list-type=2&prefix=~objprefix&single=&unreserved=-_.~"), + creq.params.as_deref(), + ); + } + + #[test] + fn test_signing_urls_with_percent_encoded_query_strings() { + let all_printable_ascii_chars: String = (32u8..127).map(char::from).collect(); + let uri = Uri::from_static("https://s3.us-east-1.amazonaws.com/my-bucket"); + + let mut query_writer = QueryWriter::new(&uri); + query_writer.insert("list-type", "2"); + query_writer.insert("prefix", &all_printable_ascii_chars); + + let req = http::Request::builder() + .uri(query_writer.build_uri()) + .body("") + .unwrap(); + let req = SignableRequest::from(&req); + let signing_params = signing_params(SigningSettings::default()); + let creq = CanonicalRequest::from(&req, &signing_params).unwrap(); + + let expected = "list-type=2&prefix=%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~"; + let actual = creq.params.unwrap(); + assert_eq!(expected, actual); + } + + // It should exclude user-agent and x-amz-user-agent headers from presigning + #[test] + fn presigning_header_exclusion() { + let request = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com") + .header("content-type", "application/xml") + .header("content-length", "0") + .header("user-agent", "test-user-agent") + .header("x-amz-user-agent", "test-user-agent") + .body("") + .unwrap(); + let request = SignableRequest::from(&request); + + let settings = SigningSettings { + signature_location: SignatureLocation::QueryParams, + expires_in: Some(Duration::from_secs(30)), + ..Default::default() + }; + + let signing_params = signing_params(settings); + let canonical = CanonicalRequest::from(&request, &signing_params).unwrap(); + + let values = canonical.values.into_query_params().unwrap(); + assert_eq!( + "content-length;content-type;host", + values.signed_headers.as_str() + ); + } + + #[test] + fn test_trim_all_handles_spaces_correctly() { + // Can't compare a byte array to a Cow so we convert both to slices before comparing + let expected = &b"Some example text"[..]; + let actual = &trim_all(b" Some example text ")[..]; + + assert_eq!(expected, actual); + } + + #[test] + fn test_trim_all_ignores_other_forms_of_whitespace() { + // Can't compare a byte array to a Cow so we convert both to slices before comparing + let expected = &b"\t\xA0Some\xA0 example \xA0text\xA0\n"[..]; + // \xA0 is a non-breaking space character + let actual = &trim_all(b"\t\xA0Some\xA0 example \xA0text\xA0\n")[..]; + + assert_eq!(expected, actual); + } + + #[test] + fn trim_spaces_works_on_single_characters() { + assert_eq!(trim_all(b"2").as_ref(), b"2"); + } + + proptest! { + #[test] + fn test_trim_all_doesnt_elongate_strings(s in ".*") { + assert!(trim_all(s.as_bytes()).len() <= s.len()) + } + + #[test] + fn test_normalize_header_value_doesnt_panic(v in (".*")) { + if let Ok(header_value) = HeaderValue::from_maybe_shared(v) { + let _ = normalize_header_value(&header_value); + } + } + + #[test] + fn test_trim_all_does_nothing_when_there_are_no_spaces(s in "[^ ]*") { + assert_eq!(trim_all(s.as_bytes()).as_ref(), s.as_bytes()); + } + } +} diff --git a/patch/aws-sigv4/src/http_request/mod.rs b/patch/aws-sigv4/src/http_request/mod.rs new file mode 100644 index 0000000000000..0b80e71137296 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/mod.rs @@ -0,0 +1,56 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Utilities to sign HTTP requests. +//! +//! # Example: Signing an HTTP request +//! +//! ```rust +//! # fn test() -> Result<(), aws_sigv4::http_request::Error> { +//! use aws_sigv4::http_request::{sign, SigningSettings, SigningParams, SignableRequest}; +//! use http; +//! use std::time::SystemTime; +//! +//! // Create the request to sign +//! let mut request = http::Request::builder() +//! .uri("https://some-endpoint.some-region.amazonaws.com") +//! .body("") +//! .unwrap(); +//! +//! // Set up information and settings for the signing +//! let signing_settings = SigningSettings::default(); +//! let signing_params = SigningParams::builder() +//! .access_key("example access key") +//! .secret_key("example secret key") +//! .region("us-east-1") +//! .service_name("exampleservice") +//! .time(SystemTime::now()) +//! .settings(signing_settings) +//! .build() +//! .unwrap(); +//! // Convert the HTTP request into a signable request +//! let signable_request = SignableRequest::from(&request); +//! +//! // Sign and then apply the signature to the request +//! let (signing_instructions, _signature) = sign(signable_request, &signing_params)?.into_parts(); +//! signing_instructions.apply_to_request(&mut request); +//! # Ok(()) +//! # } +//! ``` +//! + +mod canonical_request; +mod query_writer; +mod settings; +mod sign; +mod url_escape; + +#[cfg(test)] +pub(crate) mod test; + +pub use settings::{ + PayloadChecksumKind, PercentEncodingMode, SignatureLocation, SigningParams, SigningSettings, +}; +pub use sign::{sign, Error, SignableBody, SignableRequest}; diff --git a/patch/aws-sigv4/src/http_request/query_writer.rs b/patch/aws-sigv4/src/http_request/query_writer.rs new file mode 100644 index 0000000000000..d67891c44cb57 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/query_writer.rs @@ -0,0 +1,165 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use crate::http_request::url_escape::percent_encode_query; +use http::Uri; + +/// Utility for updating the query string in a [`Uri`]. +pub(super) struct QueryWriter { + base_uri: Uri, + new_path_and_query: String, + prefix: Option, +} + +impl QueryWriter { + /// Creates a new `QueryWriter` based off the given `uri`. + pub(super) fn new(uri: &Uri) -> Self { + let new_path_and_query = uri + .path_and_query() + .map(|pq| pq.to_string()) + .unwrap_or_default(); + let prefix = if uri.query().is_none() { + Some('?') + } else if !uri.query().unwrap_or_default().is_empty() { + Some('&') + } else { + None + }; + QueryWriter { + base_uri: uri.clone(), + new_path_and_query, + prefix, + } + } + + /// Clears all query parameters. + pub(super) fn clear_params(&mut self) { + if let Some(index) = self.new_path_and_query.find('?') { + self.new_path_and_query.truncate(index); + self.prefix = Some('?'); + } + } + + /// Inserts a new query parameter. The key and value are percent encoded + /// by `QueryWriter`. Passing in percent encoded values will result in double encoding. + pub(super) fn insert(&mut self, k: &str, v: &str) { + if let Some(prefix) = self.prefix { + self.new_path_and_query.push(prefix); + } + self.prefix = Some('&'); + self.new_path_and_query.push_str(&percent_encode_query(k)); + self.new_path_and_query.push('='); + + self.new_path_and_query.push_str(&percent_encode_query(v)); + } + + /// Returns just the built query string. + pub(super) fn build_query(self) -> String { + self.build_uri().query().unwrap_or_default().to_string() + } + + /// Returns a full [`Uri`] with the query string updated. + pub(super) fn build_uri(self) -> Uri { + let mut parts = self.base_uri.into_parts(); + parts.path_and_query = Some( + self.new_path_and_query + .parse() + .expect("adding query should not invalidate URI"), + ); + Uri::from_parts(parts).expect("a valid URL in should always produce a valid URL out") + } +} + +#[cfg(test)] +mod test { + use super::QueryWriter; + use http::Uri; + + #[test] + fn empty_uri() { + let uri = Uri::from_static("http://www.example.com"); + let mut query_writer = QueryWriter::new(&uri); + query_writer.insert("key", "val%ue"); + query_writer.insert("another", "value"); + assert_eq!( + query_writer.build_uri(), + Uri::from_static("http://www.example.com?key=val%25ue&another=value") + ); + } + + #[test] + fn uri_with_path() { + let uri = Uri::from_static("http://www.example.com/path"); + let mut query_writer = QueryWriter::new(&uri); + query_writer.insert("key", "val%ue"); + query_writer.insert("another", "value"); + assert_eq!( + query_writer.build_uri(), + Uri::from_static("http://www.example.com/path?key=val%25ue&another=value") + ); + } + + #[test] + fn uri_with_path_and_query() { + let uri = Uri::from_static("http://www.example.com/path?original=here"); + let mut query_writer = QueryWriter::new(&uri); + query_writer.insert("key", "val%ue"); + query_writer.insert("another", "value"); + assert_eq!( + query_writer.build_uri(), + Uri::from_static( + "http://www.example.com/path?original=here&key=val%25ue&another=value" + ) + ); + } + + #[test] + fn build_query() { + let uri = Uri::from_static("http://www.example.com"); + let mut query_writer = QueryWriter::new(&uri); + query_writer.insert("key", "val%ue"); + query_writer.insert("ano%ther", "value"); + assert_eq!("key=val%25ue&ano%25ther=value", query_writer.build_query()); + } + + #[test] + // This test ensures that the percent encoding applied to queries always produces a valid URI if + // the starting URI is valid + fn doesnt_panic_when_adding_query_to_valid_uri() { + let uri = Uri::from_static("http://www.example.com"); + + let mut problematic_chars = Vec::new(); + + for byte in u8::MIN..=u8::MAX { + match std::str::from_utf8(&[byte]) { + // If we can't make a str from the byte then we certainly can't make a URL from it + Err(_) => { + continue; + } + Ok(value) => { + let mut query_writer = QueryWriter::new(&uri); + query_writer.insert("key", value); + + if let Err(_) = std::panic::catch_unwind(|| query_writer.build_uri()) { + problematic_chars.push(char::from(byte)); + }; + } + } + } + + if !problematic_chars.is_empty() { + panic!("we got some bad bytes here: {:#?}", problematic_chars) + } + } + + #[test] + fn clear_params() { + let uri = Uri::from_static("http://www.example.com/path?original=here&foo=1"); + let mut query_writer = QueryWriter::new(&uri); + query_writer.clear_params(); + query_writer.insert("new", "value"); + assert_eq!("new=value", query_writer.build_query()); + } +} diff --git a/patch/aws-sigv4/src/http_request/settings.rs b/patch/aws-sigv4/src/http_request/settings.rs new file mode 100644 index 0000000000000..b353326288145 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/settings.rs @@ -0,0 +1,79 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use std::time::Duration; + +/// HTTP signing parameters +pub type SigningParams<'a> = crate::SigningParams<'a, SigningSettings>; + +/// HTTP-specific signing settings +#[derive(Debug, PartialEq)] +#[non_exhaustive] +pub struct SigningSettings { + /// Specifies how to encode the request URL when signing. Some services do not decode + /// the path prior to checking the signature, requiring clients to actually _double-encode_ + /// the URI in creating the canonical request in order to pass a signature check. + pub percent_encoding_mode: PercentEncodingMode, + + /// Add an additional checksum header + pub payload_checksum_kind: PayloadChecksumKind, + + /// Where to put the signature + pub signature_location: SignatureLocation, + + /// For presigned requests, how long the presigned request is valid for + pub expires_in: Option, +} + +/// HTTP payload checksum type +#[non_exhaustive] +#[derive(Debug, Eq, PartialEq)] +pub enum PayloadChecksumKind { + /// Add x-amz-checksum-sha256 to the canonical request + /// + /// This setting is required for S3 + XAmzSha256, + + /// Do not add an additional header when creating the canonical request + /// + /// This is "normal mode" and will work for services other than S3 + NoHeader, +} + +/// Config value to specify how to encode the request URL when signing. +/// +/// We assume the URI will be encoded _once_ prior to transmission. Some services +/// do not decode the path prior to checking the signature, requiring clients to actually +/// _double-encode_ the URI in creating the canonical request in order to pass a signature check. +#[non_exhaustive] +#[derive(Debug, Eq, PartialEq)] +pub enum PercentEncodingMode { + /// Re-encode the resulting URL (e.g. %30 becomes `%2530) + Double, + + /// Take the resulting URL as-is + Single, +} + +impl Default for SigningSettings { + fn default() -> Self { + Self { + percent_encoding_mode: PercentEncodingMode::Double, + payload_checksum_kind: PayloadChecksumKind::NoHeader, + signature_location: SignatureLocation::Headers, + expires_in: None, + } + } +} + +/// Where to place signing values in the HTTP request +#[non_exhaustive] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub enum SignatureLocation { + /// Place the signature in the request headers + Headers, + /// Place the signature in the request query parameters + QueryParams, +} diff --git a/patch/aws-sigv4/src/http_request/sign.rs b/patch/aws-sigv4/src/http_request/sign.rs new file mode 100644 index 0000000000000..3f83779336592 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/sign.rs @@ -0,0 +1,554 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use super::{PayloadChecksumKind, SignatureLocation}; +use crate::http_request::canonical_request::header; +use crate::http_request::canonical_request::param; +use crate::http_request::canonical_request::{CanonicalRequest, StringToSign, HMAC_256}; +use crate::http_request::query_writer::QueryWriter; +use crate::http_request::SigningParams; +use crate::sign::{calculate_signature, generate_signing_key, sha256_hex_string}; +use crate::SigningOutput; +use http::header::HeaderValue; +use http::{HeaderMap, Method, Uri}; +use std::borrow::Cow; +use std::convert::TryFrom; +use std::error::Error as StdError; +use std::str; + +/// Signing error type +pub type Error = Box; + +/// Represents all of the information necessary to sign an HTTP request. +#[derive(Debug)] +#[non_exhaustive] +pub struct SignableRequest<'a> { + method: &'a Method, + uri: &'a Uri, + headers: &'a HeaderMap, + body: SignableBody<'a>, +} + +impl<'a> SignableRequest<'a> { + /// Creates a new `SignableRequest`. If you have an [`http::Request`], then + /// consider using [`SignableRequest::from`] instead of `new`. + pub fn new( + method: &'a Method, + uri: &'a Uri, + headers: &'a HeaderMap, + body: SignableBody<'a>, + ) -> Self { + Self { + method, + uri, + headers, + body, + } + } + + /// Returns the signable URI + pub fn uri(&self) -> &Uri { + self.uri + } + + /// Returns the signable HTTP method + pub fn method(&self) -> &Method { + self.method + } + + /// Returns the request headers + pub fn headers(&self) -> &HeaderMap { + self.headers + } + + /// Returns the signable body + pub fn body(&self) -> &SignableBody<'_> { + &self.body + } +} + +impl<'a, B> From<&'a http::Request> for SignableRequest<'a> +where + B: 'a, + B: AsRef<[u8]>, +{ + fn from(request: &'a http::Request) -> SignableRequest<'a> { + SignableRequest::new( + request.method(), + request.uri(), + request.headers(), + SignableBody::Bytes(request.body().as_ref()), + ) + } +} + +/// A signable HTTP request body +#[derive(Debug, Clone, Eq, PartialEq)] +#[non_exhaustive] +pub enum SignableBody<'a> { + /// A body composed of a slice of bytes + Bytes(&'a [u8]), + + /// An unsigned payload + /// + /// UnsignedPayload is used for streaming requests where the contents of the body cannot be + /// known prior to signing + UnsignedPayload, + + /// A precomputed body checksum. The checksum should be a SHA256 checksum of the body, + /// lowercase hex encoded. Eg: + /// `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855` + Precomputed(String), +} + +#[derive(Debug)] +pub struct SigningInstructions { + headers: Option>, + params: Option)>>, +} + +impl SigningInstructions { + fn new( + headers: Option>, + params: Option)>>, + ) -> Self { + Self { headers, params } + } + + pub fn headers(&self) -> Option<&HeaderMap> { + self.headers.as_ref() + } + pub fn take_headers(&mut self) -> Option> { + self.headers.take() + } + + pub fn params(&self) -> Option<&Vec<(&'static str, Cow<'static, str>)>> { + self.params.as_ref() + } + pub fn take_params(&mut self) -> Option)>> { + self.params.take() + } + + pub fn apply_to_request(mut self, request: &mut http::Request) { + if let Some(new_headers) = self.take_headers() { + for (name, value) in new_headers.into_iter() { + request.headers_mut().insert(name.unwrap(), value); + } + } + if let Some(params) = self.take_params() { + let mut query = QueryWriter::new(request.uri()); + for (name, value) in params { + query.insert(name, &value); + } + *request.uri_mut() = query.build_uri(); + } + } +} + +/// Produces a signature for the given `request` and returns instructions +/// that can be used to apply that signature to an HTTP request. +pub fn sign<'a>( + request: SignableRequest<'a>, + params: &'a SigningParams<'a>, +) -> Result, Error> { + tracing::trace!(request = ?request, params = ?params, "signing request"); + match params.settings.signature_location { + SignatureLocation::Headers => { + let (signing_headers, signature) = + calculate_signing_headers(&request, params)?.into_parts(); + Ok(SigningOutput::new( + SigningInstructions::new(Some(signing_headers), None), + signature, + )) + } + SignatureLocation::QueryParams => { + let (params, signature) = calculate_signing_params(&request, params)?; + Ok(SigningOutput::new( + SigningInstructions::new(None, Some(params)), + signature, + )) + } + } +} + +type CalculatedParams = Vec<(&'static str, Cow<'static, str>)>; + +fn calculate_signing_params<'a>( + request: &'a SignableRequest<'a>, + params: &'a SigningParams<'a>, +) -> Result<(CalculatedParams, String), Error> { + let creq = CanonicalRequest::from(request, params)?; + tracing::trace!(canonical_request = %creq); + + let encoded_creq = &sha256_hex_string(creq.to_string().as_bytes()); + let sts = StringToSign::new( + params.time, + params.region, + params.service_name, + encoded_creq, + ); + let signing_key = generate_signing_key( + params.secret_key, + params.time, + params.region, + params.service_name, + ); + let signature = calculate_signature(signing_key, sts.to_string().as_bytes()); + + let values = creq.values.into_query_params().expect("signing with query"); + let mut signing_params = vec![ + (param::X_AMZ_ALGORITHM, Cow::Borrowed(values.algorithm)), + (param::X_AMZ_CREDENTIAL, Cow::Owned(values.credential)), + (param::X_AMZ_DATE, Cow::Owned(values.date_time)), + (param::X_AMZ_EXPIRES, Cow::Owned(values.expires)), + ( + param::X_AMZ_SIGNED_HEADERS, + Cow::Owned(values.signed_headers.as_str().into()), + ), + (param::X_AMZ_SIGNATURE, Cow::Owned(signature.clone())), + ]; + if let Some(security_token) = params.security_token { + signing_params.push(( + param::X_AMZ_SECURITY_TOKEN, + Cow::Owned(security_token.to_string()), + )); + } + Ok((signing_params, signature)) +} + +/// Calculates the signature headers that need to get added to the given `request`. +/// +/// `request` MUST NOT contain any of the following headers: +/// - x-amz-date +/// - x-amz-content-sha-256 +/// - x-amz-security-token +fn calculate_signing_headers<'a>( + request: &'a SignableRequest<'a>, + params: &'a SigningParams<'a>, +) -> Result>, Error> { + // Step 1: https://docs.aws.amazon.com/en_pv/general/latest/gr/sigv4-create-canonical-request.html. + let creq = CanonicalRequest::from(request, params)?; + tracing::trace!(canonical_request = %creq); + + // Step 2: https://docs.aws.amazon.com/en_pv/general/latest/gr/sigv4-create-string-to-sign.html. + let encoded_creq = &sha256_hex_string(creq.to_string().as_bytes()); + let sts = StringToSign::new( + params.time, + params.region, + params.service_name, + encoded_creq, + ); + + // Step 3: https://docs.aws.amazon.com/en_pv/general/latest/gr/sigv4-calculate-signature.html + let signing_key = generate_signing_key( + params.secret_key, + params.time, + params.region, + params.service_name, + ); + let signature = calculate_signature(signing_key, sts.to_string().as_bytes()); + + // Step 4: https://docs.aws.amazon.com/en_pv/general/latest/gr/sigv4-add-signature-to-request.html + let values = creq.values.as_headers().expect("signing with headers"); + let mut headers = HeaderMap::new(); + add_header(&mut headers, header::X_AMZ_DATE, &values.date_time); + headers.insert( + "authorization", + build_authorization_header(params.access_key, &creq, sts, &signature), + ); + if params.settings.payload_checksum_kind == PayloadChecksumKind::XAmzSha256 { + add_header( + &mut headers, + header::X_AMZ_CONTENT_SHA_256, + &values.content_sha256, + ); + } + if let Some(security_token) = values.security_token { + add_header(&mut headers, header::X_AMZ_SECURITY_TOKEN, security_token); + } + Ok(SigningOutput::new(headers, signature)) +} + +fn add_header(map: &mut HeaderMap, key: &'static str, value: &str) { + map.insert(key, HeaderValue::try_from(value).expect(key)); +} + +// add signature to authorization header +// Authorization: algorithm Credential=access key ID/credential scope, SignedHeaders=SignedHeaders, Signature=signature +fn build_authorization_header( + access_key: &str, + creq: &CanonicalRequest<'_>, + sts: StringToSign<'_>, + signature: &str, +) -> HeaderValue { + let mut value = HeaderValue::try_from(format!( + "{} Credential={}/{}, SignedHeaders={}, Signature={}", + HMAC_256, + access_key, + sts.scope.to_string(), + creq.values.signed_headers().as_str(), + signature + )) + .unwrap(); + value.set_sensitive(true); + value +} + +#[cfg(test)] +mod tests { + use super::{sign, SigningInstructions}; + use crate::date_time::test_parsers::parse_date_time; + use crate::http_request::sign::SignableRequest; + use crate::http_request::test::{ + make_headers_comparable, test_request, test_signed_request, + test_signed_request_query_params, + }; + use crate::http_request::{SignatureLocation, SigningParams, SigningSettings}; + use http::{HeaderMap, HeaderValue}; + use pretty_assertions::assert_eq; + use std::borrow::Cow; + use std::time::Duration; + + macro_rules! assert_req_eq { + ($a:tt, $b:tt) => { + make_headers_comparable(&mut $a); + make_headers_comparable(&mut $b); + assert_eq!(format!("{:?}", $a), format!("{:?}", $b)) + }; + } + + #[test] + fn test_sign_vanilla_with_headers() { + let settings = SigningSettings::default(); + let params = SigningParams { + access_key: "AKIDEXAMPLE", + secret_key: "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY", + security_token: None, + region: "us-east-1", + service_name: "service", + time: parse_date_time("20150830T123600Z").unwrap(), + settings, + }; + + let original = test_request("get-vanilla-query-order-key-case"); + let signable = SignableRequest::from(&original); + let out = sign(signable, ¶ms).unwrap(); + assert_eq!( + "b97d918cfa904a5beff61c982a1b6f458b799221646efd99d3219ec94cdf2500", + out.signature + ); + + let mut signed = original; + out.output.apply_to_request(&mut signed); + + let mut expected = test_signed_request("get-vanilla-query-order-key-case"); + assert_req_eq!(expected, signed); + } + + #[test] + fn test_sign_url_escape() { + let test = "double-encode-path"; + let settings = SigningSettings::default(); + let params = SigningParams { + access_key: "AKIDEXAMPLE", + secret_key: "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY", + security_token: None, + region: "us-east-1", + service_name: "service", + time: parse_date_time("20150830T123600Z").unwrap(), + settings, + }; + + let original = test_request(test); + let signable = SignableRequest::from(&original); + let out = sign(signable, ¶ms).unwrap(); + assert_eq!( + "6f871eb157f326fa5f7439eb88ca200048635950ce7d6037deda56f0c95d4364", + out.signature + ); + + let mut signed = original; + out.output.apply_to_request(&mut signed); + + let mut expected = test_signed_request(test); + assert_req_eq!(expected, signed); + } + + #[test] + fn test_sign_vanilla_with_query_params() { + let mut settings = SigningSettings::default(); + settings.signature_location = SignatureLocation::QueryParams; + settings.expires_in = Some(Duration::from_secs(35)); + let params = SigningParams { + access_key: "AKIDEXAMPLE", + secret_key: "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY", + security_token: None, + region: "us-east-1", + service_name: "service", + time: parse_date_time("20150830T123600Z").unwrap(), + settings, + }; + + let original = test_request("get-vanilla-query-order-key-case"); + let signable = SignableRequest::from(&original); + let out = sign(signable, ¶ms).unwrap(); + assert_eq!( + "f25aea20f8c722ece3b363fc5d60cc91add973f9b64c42ba36fa28d57afe9019", + out.signature + ); + + let mut signed = original; + out.output.apply_to_request(&mut signed); + + let mut expected = test_signed_request_query_params("get-vanilla-query-order-key-case"); + assert_req_eq!(expected, signed); + } + + #[test] + fn test_sign_headers_utf8() { + let settings = SigningSettings::default(); + let params = SigningParams { + access_key: "AKIDEXAMPLE", + secret_key: "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY", + security_token: None, + region: "us-east-1", + service_name: "service", + time: parse_date_time("20150830T123600Z").unwrap(), + settings, + }; + + let original = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com") + .header("some-header", HeaderValue::from_str("テスト").unwrap()) + .body("") + .unwrap(); + let signable = SignableRequest::from(&original); + let out = sign(signable, ¶ms).unwrap(); + assert_eq!( + "4596b207a7fc6bdf18725369bc0cd7022cf20efbd2c19730549f42d1a403648e", + out.signature + ); + + let mut signed = original; + out.output.apply_to_request(&mut signed); + + let mut expected = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com") + .header("some-header", HeaderValue::from_str("テスト").unwrap()) + .header( + "x-amz-date", + HeaderValue::from_str("20150830T123600Z").unwrap(), + ) + .header( + "authorization", + HeaderValue::from_str( + "AWS4-HMAC-SHA256 \ + Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, \ + SignedHeaders=host;some-header;x-amz-date, \ + Signature=4596b207a7fc6bdf18725369bc0cd7022cf20efbd2c19730549f42d1a403648e", + ) + .unwrap(), + ) + .body("") + .unwrap(); + assert_req_eq!(expected, signed); + } + + #[test] + fn test_sign_headers_space_trimming() { + let settings = SigningSettings::default(); + let params = SigningParams { + access_key: "AKIDEXAMPLE", + secret_key: "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY", + security_token: None, + region: "us-east-1", + service_name: "service", + time: parse_date_time("20150830T123600Z").unwrap(), + settings, + }; + + let original = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com") + .header( + "some-header", + HeaderValue::from_str("  test test ").unwrap(), + ) + .body("") + .unwrap(); + let signable = SignableRequest::from(&original); + let out = sign(signable, ¶ms).unwrap(); + assert_eq!( + "0bd74dbf6f21161f61a1a3a1c313b6a4bc67ec57bf5ea9ae956a63753ca1d7f7", + out.signature + ); + + let mut signed = original; + out.output.apply_to_request(&mut signed); + + let mut expected = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com") + .header( + "some-header", + HeaderValue::from_str("  test test ").unwrap(), + ) + .header( + "x-amz-date", + HeaderValue::from_str("20150830T123600Z").unwrap(), + ) + .header( + "authorization", + HeaderValue::from_str( + "AWS4-HMAC-SHA256 \ + Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, \ + SignedHeaders=host;some-header;x-amz-date, \ + Signature=0bd74dbf6f21161f61a1a3a1c313b6a4bc67ec57bf5ea9ae956a63753ca1d7f7", + ) + .unwrap(), + ) + .body("") + .unwrap(); + assert_req_eq!(expected, signed); + } + + #[test] + fn apply_signing_instructions_headers() { + let mut headers = HeaderMap::new(); + headers.insert("some-header", HeaderValue::from_static("foo")); + headers.insert("some-other-header", HeaderValue::from_static("bar")); + let instructions = SigningInstructions::new(Some(headers), None); + + let mut request = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com") + .body("") + .unwrap(); + + instructions.apply_to_request(&mut request); + + let get_header = |n: &str| request.headers().get(n).unwrap().to_str().unwrap(); + assert_eq!("foo", get_header("some-header")); + assert_eq!("bar", get_header("some-other-header")); + } + + #[test] + fn apply_signing_instructions_query_params() { + let params = vec![ + ("some-param", Cow::Borrowed("f&o?o")), + ("some-other-param?", Cow::Borrowed("bar")), + ]; + let instructions = SigningInstructions::new(None, Some(params)); + + let mut request = http::Request::builder() + .uri("https://some-endpoint.some-region.amazonaws.com/some/path") + .body("") + .unwrap(); + + instructions.apply_to_request(&mut request); + + assert_eq!( + "/some/path?some-param=f%26o%3Fo&some-other-param%3F=bar", + request.uri().path_and_query().unwrap().to_string() + ); + } +} diff --git a/patch/aws-sigv4/src/http_request/test.rs b/patch/aws-sigv4/src/http_request/test.rs new file mode 100644 index 0000000000000..c9d26c21676e1 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/test.rs @@ -0,0 +1,136 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Functions shared between the tests of several modules. + +use bytes::Bytes; +use http::{Method, Request, Uri, Version}; +use std::error::Error as StdError; + +fn path(name: &str, ext: &str) -> String { + format!("aws-sig-v4-test-suite/{}/{}.{}", name, name, ext) +} + +fn read(path: &str) -> String { + println!("Loading `{}` for test case...", path); + match std::fs::read_to_string(path) { + // This replacement is necessary for tests to pass on Windows, as reading the + // sigv4 snapshots from the file system results in CRLF line endings being inserted. + Ok(value) => value.replace("\r\n", "\n"), + Err(err) => { + panic!("failed to load test case `{}`: {}", path, err); + } + } +} + +pub(crate) fn test_canonical_request(name: &str) -> String { + // Tests fail if there's a trailing newline in the file, and pre-commit requires trailing newlines + read(&path(name, "creq")).trim().to_string() +} + +pub(crate) fn test_sts(name: &str) -> String { + read(&path(name, "sts")) +} + +pub(crate) fn test_request(name: &str) -> Request { + test_parsed_request(name, "req") +} + +pub(crate) fn test_signed_request(name: &str) -> Request { + test_parsed_request(name, "sreq") +} + +pub(crate) fn test_signed_request_query_params(name: &str) -> Request { + test_parsed_request(name, "qpsreq") +} + +fn test_parsed_request(name: &str, ext: &str) -> Request { + let path = path(name, ext); + match parse_request(read(&path).as_bytes()) { + Ok(parsed) => parsed, + Err(err) => panic!("Failed to parse {}: {}", path, err), + } +} + +pub(crate) fn make_headers_comparable(request: &mut Request) { + for (_name, value) in request.headers_mut() { + value.set_sensitive(false); + } +} + +fn parse_request( + s: &[u8], +) -> Result, Box> { + let mut headers = [httparse::EMPTY_HEADER; 64]; + // httparse 1.5 requires two trailing newlines to head the header section. + let mut with_newline = Vec::from(s); + with_newline.push(b'\n'); + let mut req = httparse::Request::new(&mut headers); + let _ = req.parse(&with_newline).unwrap(); + + let version = match req.version.unwrap() { + 1 => Version::HTTP_11, + _ => unimplemented!(), + }; + + let method = match req.method.unwrap() { + "GET" => Method::GET, + "POST" => Method::POST, + _ => unimplemented!(), + }; + + let mut builder = Request::builder(); + builder = builder.version(version); + builder = builder.method(method); + + let mut uri_builder = Uri::builder().scheme("https"); + if let Some(path) = req.path { + uri_builder = uri_builder.path_and_query(path); + } + for header in req.headers { + let name = header.name.to_lowercase(); + if name == "host" { + uri_builder = uri_builder.authority(header.value); + } else if !name.is_empty() { + builder = builder.header(&name, header.value); + } + } + + builder = builder.uri(uri_builder.build()?); + let req = builder.body(bytes::Bytes::new())?; + Ok(req) +} + +#[test] +fn test_parse_headers() { + let buf = b"Host:example.amazonaws.com\nX-Amz-Date:20150830T123600Z\n\nblah blah"; + let mut headers = [httparse::EMPTY_HEADER; 4]; + assert_eq!( + httparse::parse_headers(buf, &mut headers), + Ok(httparse::Status::Complete(( + 56, + &[ + httparse::Header { + name: "Host", + value: b"example.amazonaws.com", + }, + httparse::Header { + name: "X-Amz-Date", + value: b"20150830T123600Z", + } + ][..] + ))) + ); +} + +#[test] +fn test_parse() { + test_request("post-header-key-case"); +} + +#[test] +fn test_read_query_params() { + test_request("get-vanilla-query-order-key-case"); +} diff --git a/patch/aws-sigv4/src/http_request/url_escape.rs b/patch/aws-sigv4/src/http_request/url_escape.rs new file mode 100644 index 0000000000000..a377039bba4d6 --- /dev/null +++ b/patch/aws-sigv4/src/http_request/url_escape.rs @@ -0,0 +1,14 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +use aws_smithy_http::{label, query}; + +pub(super) fn percent_encode_query(value: &str) -> String { + query::fmt_string(value) +} + +pub(super) fn percent_encode_path(value: &str) -> String { + label::fmt_string(value, true) +} diff --git a/patch/aws-sigv4/src/lib.rs b/patch/aws-sigv4/src/lib.rs new file mode 100644 index 0000000000000..232c2bc3b0304 --- /dev/null +++ b/patch/aws-sigv4/src/lib.rs @@ -0,0 +1,226 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Provides functions for calculating Sigv4 signing keys, signatures, and +//! optional utilities for signing HTTP requests and Event Stream messages. + +#![warn( + missing_docs, + rustdoc::missing_crate_level_docs, + missing_debug_implementations, + rust_2018_idioms, + unreachable_pub +)] + +use std::time::SystemTime; + +pub mod sign; + +mod date_time; + +#[cfg(feature = "sign-eventstream")] +pub mod event_stream; + +#[cfg(feature = "sign-http")] +pub mod http_request; + +/// Parameters to use when signing. +#[non_exhaustive] +#[derive(Debug)] +pub struct SigningParams<'a, S> { + /// Access Key ID to use. + pub(crate) access_key: &'a str, + /// Secret access key to use. + pub(crate) secret_key: &'a str, + /// (Optional) Security token to use. + pub(crate) security_token: Option<&'a str>, + + /// Region to sign for. + pub(crate) region: &'a str, + /// AWS Service Name to sign for. + pub(crate) service_name: &'a str, + /// Timestamp to use in the signature (should be `SystemTime::now()` unless testing). + pub(crate) time: SystemTime, + + /// Additional signing settings. These differ between HTTP and Event Stream. + pub(crate) settings: S, +} + +impl<'a, S: Default> SigningParams<'a, S> { + /// Returns a builder that can create new `SigningParams`. + pub fn builder() -> signing_params::Builder<'a, S> { + Default::default() + } +} + +/// Builder and error for creating [`SigningParams`] +pub mod signing_params { + use super::SigningParams; + use std::error::Error; + use std::fmt; + use std::time::SystemTime; + + /// [`SigningParams`] builder error + #[derive(Debug)] + pub struct BuildError { + reason: &'static str, + } + impl BuildError { + fn new(reason: &'static str) -> Self { + Self { reason } + } + } + + impl fmt::Display for BuildError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.reason) + } + } + + impl Error for BuildError {} + + /// Builder that can create new [`SigningParams`] + #[derive(Debug, Default)] + pub struct Builder<'a, S> { + access_key: Option<&'a str>, + secret_key: Option<&'a str>, + security_token: Option<&'a str>, + region: Option<&'a str>, + service_name: Option<&'a str>, + time: Option, + settings: Option, + } + + impl<'a, S> Builder<'a, S> { + /// Sets the access key (required). + pub fn access_key(mut self, access_key: &'a str) -> Self { + self.access_key = Some(access_key); + self + } + /// Sets the access key (required) + pub fn set_access_key(&mut self, access_key: Option<&'a str>) { + self.access_key = access_key; + } + + /// Sets the secret key (required) + pub fn secret_key(mut self, secret_key: &'a str) -> Self { + self.secret_key = Some(secret_key); + self + } + /// Sets the secret key (required) + pub fn set_secret_key(&mut self, secret_key: Option<&'a str>) { + self.secret_key = secret_key; + } + + /// Sets the security token (optional) + pub fn security_token(mut self, security_token: &'a str) -> Self { + self.security_token = Some(security_token); + self + } + /// Sets the security token (optional) + pub fn set_security_token(&mut self, security_token: Option<&'a str>) { + self.security_token = security_token; + } + + /// Sets the region (required) + pub fn region(mut self, region: &'a str) -> Self { + self.region = Some(region); + self + } + /// Sets the region (required) + pub fn set_region(&mut self, region: Option<&'a str>) { + self.region = region; + } + + /// Sets the service name (required) + pub fn service_name(mut self, service_name: &'a str) -> Self { + self.service_name = Some(service_name); + self + } + /// Sets the service name (required) + pub fn set_service_name(&mut self, service_name: Option<&'a str>) { + self.service_name = service_name; + } + + /// Sets the time to be used in the signature (required) + pub fn time(mut self, time: SystemTime) -> Self { + self.time = Some(time); + self + } + /// Sets the time to be used in the signature (required) + pub fn set_time(&mut self, time: Option) { + self.time = time; + } + + /// Sets additional signing settings (required) + pub fn settings(mut self, settings: S) -> Self { + self.settings = Some(settings); + self + } + /// Sets additional signing settings (required) + pub fn set_settings(&mut self, settings: Option) { + self.settings = settings; + } + + /// Builds an instance of [`SigningParams`]. Will yield a [`BuildError`] if + /// a required argument was not given. + pub fn build(self) -> Result, BuildError> { + Ok(SigningParams { + access_key: self + .access_key + .ok_or_else(|| BuildError::new("access key is required"))?, + secret_key: self + .secret_key + .ok_or_else(|| BuildError::new("secret key is required"))?, + security_token: self.security_token, + region: self + .region + .ok_or_else(|| BuildError::new("region is required"))?, + service_name: self + .service_name + .ok_or_else(|| BuildError::new("service name is required"))?, + time: self + .time + .ok_or_else(|| BuildError::new("time is required"))?, + settings: self + .settings + .ok_or_else(|| BuildError::new("settings are required"))?, + }) + } + } +} + +/// Container for the signed output and the signature. +/// +/// This is returned by signing functions, and the signed output will be +/// different based on what is being signed (for example, an event stream +/// message, or an HTTP request). +#[derive(Debug)] +pub struct SigningOutput { + output: T, + signature: String, +} + +impl SigningOutput { + /// Creates a new [`SigningOutput`] + pub fn new(output: T, signature: String) -> Self { + Self { output, signature } + } + + /// Returns the signed output + pub fn output(&self) -> &T { + &self.output + } + + /// Returns the signature as a lowercase hex string + pub fn signature(&self) -> &str { + &self.signature + } + + /// Decomposes the `SigningOutput` into a tuple of the signed output and the signature + pub fn into_parts(self) -> (T, String) { + (self.output, self.signature) + } +} diff --git a/patch/aws-sigv4/src/sign.rs b/patch/aws-sigv4/src/sign.rs new file mode 100644 index 0000000000000..f7fd35a75d4d9 --- /dev/null +++ b/patch/aws-sigv4/src/sign.rs @@ -0,0 +1,143 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +//! Functions to create signing keys and calculate signatures. + +use crate::date_time::format_date; + +#[cfg(feature = "ring")] +use ring::{ + hmac::{self, Key, Tag} +}; + +#[cfg(feature = "openssl")] +use openssl::{ + hash::MessageDigest, + pkey::PKey, + sign::Signer +}; + +use std::time::SystemTime; + +/// HashedPayload = Lowercase(HexEncode(Hash(requestPayload))) +#[cfg(feature = "openssl")] +#[allow(dead_code)] // Unused when compiling without certain features +pub(crate) fn sha256_hex_string(bytes: impl AsRef<[u8]>) -> String { + use openssl::sha::sha256; + // hex::encode returns a lowercase string + hex::encode(sha256(bytes.as_ref())) +} + +/// HashedPayload = Lowercase(HexEncode(Hash(requestPayload))) +#[cfg(feature = "ring")] +#[allow(dead_code)] // Unused when compiling without certain features +pub(crate) fn sha256_hex_string(bytes: impl AsRef<[u8]>) -> String { + use ring::digest; + // hex::encode returns a lowercase string + hex::encode(digest::digest(&digest::SHA256, bytes.as_ref())) +} + +/// Calculates a Sigv4 signature +#[cfg(feature = "ring")] +pub fn calculate_signature(signing_key: Tag, string_to_sign: &[u8]) -> String { + let s_key = Key::new(hmac::HMAC_SHA256, signing_key.as_ref()); + let tag = hmac::sign(&s_key, string_to_sign); + hex::encode(tag) +} + +/// Generates a signing key for Sigv4 +#[cfg(feature = "ring")] +pub fn generate_signing_key( + secret: &str, + time: SystemTime, + region: &str, + service: &str, +) -> hmac::Tag { + // kSecret = your secret access key + // kDate = HMAC("AWS4" + kSecret, Date) + // kRegion = HMAC(kDate, Region) + // kService = HMAC(kRegion, Service) + // kSigning = HMAC(kService, "aws4_request") + + let secret = format!("AWS4{}", secret); + let secret = hmac::Key::new(hmac::HMAC_SHA256, secret.as_bytes()); + let tag = hmac::sign(&secret, format_date(time).as_bytes()); + + // sign region + let key = hmac::Key::new(hmac::HMAC_SHA256, tag.as_ref()); + let tag = hmac::sign(&key, region.as_bytes()); + + // sign service + let key = hmac::Key::new(hmac::HMAC_SHA256, tag.as_ref()); + let tag = hmac::sign(&key, service.as_bytes()); + + // sign request + let key = hmac::Key::new(hmac::HMAC_SHA256, tag.as_ref()); + hmac::sign(&key, "aws4_request".as_bytes()) +} + +#[cfg(feature = "openssl")] +fn sign_sha256(secret: &[u8], buf_to_sign: &[u8]) -> Vec { + let key = PKey::hmac(secret).unwrap(); + let mut signer = Signer::new(MessageDigest::sha256(), &key).unwrap(); + signer.update(buf_to_sign).unwrap(); + signer.sign_to_vec().unwrap() +} + +/// Calculates a Sigv4 signature +#[cfg(feature = "openssl")] +pub fn calculate_signature(signing_key: Vec, string_to_sign: &[u8]) -> String { + let signature = sign_sha256(signing_key.as_slice(), string_to_sign); + hex::encode(signature) +} + +/// Generates a signing key for Sigv4 +#[cfg(feature = "openssl")] +pub fn generate_signing_key( + secret: &str, + time: SystemTime, + region: &str, + service: &str, +) -> Vec { + // kSecret = your secret access key + // kDate = HMAC("AWS4" + kSecret, Date) + // kRegion = HMAC(kDate, Region) + // kService = HMAC(kRegion, Service) + // kSigning = HMAC(kService, "aws4_request") + + let secret = format!("AWS4{}", secret); + let signature = sign_sha256(secret.as_bytes(), format_date(time).as_bytes()); + let signature = sign_sha256(signature.as_slice(), region.as_bytes()); + let signature = sign_sha256(signature.as_slice(), service.as_bytes()); + sign_sha256(signature.as_slice(), "aws4_request".as_bytes()) +} + +#[cfg(test)] +mod tests { + use super::{calculate_signature, generate_signing_key}; + use crate::date_time::test_parsers::parse_date_time; + use crate::http_request::test::test_canonical_request; + use crate::sign::sha256_hex_string; + + #[test] + fn test_signature_calculation() { + let secret = "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"; + let creq = test_canonical_request("iam"); + let time = parse_date_time("20150830T123600Z").unwrap(); + + let derived_key = generate_signing_key(secret, time, "us-east-1", "iam"); + let signature = calculate_signature(derived_key, creq.as_bytes()); + + let expected = "5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7"; + assert_eq!(expected, &signature); + } + + #[test] + fn sign_payload_empty_string() { + let expected = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; + let actual = sha256_hex_string(&[]); + assert_eq!(expected, actual); + } +} From fa7f7b9c3018206014439854bb7da144682bd6e9 Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Mon, 13 Jun 2022 23:38:55 -0400 Subject: [PATCH 6/7] LOG-2552: - added installation of cargo-nextest to Dockerfile.unit so the unit tests would run in CI - added the patch dir to .dockerignore so it would get copied into vector container images --- .dockerignore | 1 + Dockerfile.unit | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index dad57d48e7e3d..b23ffaa2f0c52 100644 --- a/.dockerignore +++ b/.dockerignore @@ -13,3 +13,4 @@ !vendor !8.6-compose.repo !thirdparty +!patch \ No newline at end of file diff --git a/Dockerfile.unit b/Dockerfile.unit index b359c76fc062b..24ee7312bcb03 100644 --- a/Dockerfile.unit +++ b/Dockerfile.unit @@ -17,7 +17,7 @@ RUN INSTALL_PKGS=" \ rpm -V $INSTALL_PKGS && \ yum clean all -RUN mkdir -p /src +RUN mkdir -p /src ~/.cargo/bin && curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ~/.cargo/bin WORKDIR /src COPY . /src From 727da05b092b189c3296d43c891bd17d0924cc02 Mon Sep 17 00:00:00 2001 From: Sergey Yedrikov Date: Tue, 14 Jun 2022 00:35:45 -0400 Subject: [PATCH 7/7] LOG-2552: checked in cargo-nextest --- Dockerfile.unit | 3 ++- .../cargo-nextest/cargo-nextest-linux-x86_64 | Bin 0 -> 5843784 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100755 thirdparty/cargo-nextest/cargo-nextest-linux-x86_64 diff --git a/Dockerfile.unit b/Dockerfile.unit index 24ee7312bcb03..4ad936d93bf4d 100644 --- a/Dockerfile.unit +++ b/Dockerfile.unit @@ -17,7 +17,8 @@ RUN INSTALL_PKGS=" \ rpm -V $INSTALL_PKGS && \ yum clean all -RUN mkdir -p /src ~/.cargo/bin && curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ~/.cargo/bin +RUN mkdir -p /src WORKDIR /src COPY . /src +RUN mkdir -p ~/.cargo/bin && ln -s /src/thirdparty/cargo-nextest/cargo-nextest-linux-$(arch) ~/.cargo/bin/cargo-nextest diff --git a/thirdparty/cargo-nextest/cargo-nextest-linux-x86_64 b/thirdparty/cargo-nextest/cargo-nextest-linux-x86_64 new file mode 100755 index 0000000000000000000000000000000000000000..e49c4f55b48887597105a0404a63b8585f363bd6 GIT binary patch literal 5843784 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%0D>gO##uxK3exSN`=#g# zpZ%*{`69Z4Y4Lx;A-U$xT`AeyIvoB!@{4~d{+{!%!rzzwVHEy8r<(Kkr_K=k{X79Y z3;_K7wENQheFFc@qvw3~GjC+@_qT9J{QdJk`dI${e@}mZ=0^^T|0nD3^Vj^Z;qR-S z{BPv%anDnO9rJY7(3?(M$ehgg>N!=v}mh zLhN3ql{F~wg}37+4I5ZqV~uj&egqFq8&l%(n|o+xaSsiDZG;o@{N_UrhfnWMKHU99 zT6isiMihgEFF0i2bGeQV!f(Lmayfi1h-dH9mR$l&YyT1+PrJdH&jksI@2z71TrM9y zN-P^&#@-xk1O_uzYv0bpZO2P1wxQTvtH}oz!sevZE^Z@`FfHs(>h_u0l!+kl zEZ*%g1~2O{5IBm0P&=F~2n7a1ZbarLP<5m_dIx0~i5|cH1bUkOd5yqU)7@uizj~+C z2&@gcwnN#1uMz!?**e>n^L5aP3iOsTFzlnYHh=9a~JM3>dj+{%*CN>P6XI(V^ z96su|V$@&9sGoyTKY?wIy_N-fAQ)F;!MJk}@j?4y5&40Av6^p=AIAs-x&(hg#CtB9 zQ;H8AA4@Kwk6Thc^8qy4@`K2=Sc6K4Ic}(q0^U`+bGD^vyI2t;w2-9v88BV zDj0FLWvu-!r@vHrn&9E-0_ zpAzAG(I;XFb7l-%BM*ht%en#VEM*7qMqe}~tXNkP)~o;$hJn^k0=_f`5y z{yWJZ72c&g^32EN*_B+L9icGuk0#6_s4&v~DZ-4hai{n1obYW&m}TtWIV^bw)?Z4S zX0`A-Dw8MPNEZAOq{oHY@2LVC2Y&^Dks;KYAZ#$ihq;=NA=JDm(h+LYNsc)}?Ib!- zgxUmP*zL?@m=J0hVeQ@uhCr&Fwkjpnz5onV&83;TXZ_uNl@lt^KQzXP6|% zvHTz}>wC9{te1?vFQwxD=f>`ScZ3o?c)`y{lVD|#U_``0OkIev#NmlCmZu&4i>7Tl zEHSqEe~1`6*%4!me|$>$MOju3CBLSnHCcirIaxPl~CDM>EI3=vt! zw}Bw04fTik`emm0DkhKxC#J>Mb>M^~zWzNezKWUnYCi(;b?Sd|@dZU4GK{zhMGQlJ zZN&pgeqA`a{GxzZA-^EIVxC^z%9KU4sfR8SvIuEek%oqeQoOh&EsSbM?3Zsilq~v; zkVS1MXEb?)Os$8IN0%Hz9?b-%S(dr<51bb9d`$sygUVPk+Ez!p#-&KS@u+_*p@ zUO1{i%B2K*;q|&Kkm{QpGt6uMg#BJ9uYafPD=h3#Zm3iL>E_i^)c9bD^a!;hwWBol zfFqH{v-K`oA1OL4dBjA~e^FtMC^`vb#6{5$=*b%g7pbCXHblgy6h(d%>4>8JY)!kH zEGn{++}pHeHXyD2Xh-<$hpIb?9U$8K*S{dS^XA}mS?I7OPDk=&no=Jlc|vXyFOKAa zEwzE$Qg1U`DmipcTDfKM1YEP8L-Gfj^-LyzbZmyg(l^%Dwf0J8Pt9ceU6~GumoMq= z9rUUZyz|Jg{$i9!*3`mI*i!?aB#!={LFE`!#f~IO$@71}o*Fr%Jd*4w3>X3`Mi)!X zc+-J9m1YRq4@+Rc_QV^c!UuhWC(v?nYBMs)&-mq_9oR=RAwFOq;Vzyz2-k~@LI0)L zK?vdi|6;<#F@v6jELi<9W)MOJjspWDIr4Kyj_@^R{>CTT!xsOdY6cW36byqbfCdc62By=?v4oWc_dO_8k} z_CB2q$wGpN%E%Bb1NOaNWP*h+m zV9eQQlsrR`03mHQQW(GDI2+*(xE&j0*Mq?hAXs1k;s|mci7&PA_tCo)G4LUGHWqPb zQj!2 z|A6opVOs+%Z0jKahc7ADgXG|e+(j*aoZ^j5yatG(zdp~D3gL;=>3|t+*h^$0i6FD8iA3=P6ksTq;cH@sod?I;$e$n6^vIym=dcKyCCgL6a@s!;L z4_GRfqY;3&it-TU>1)#29N|7*iwp|~4EHy{{&c zpN*I&cz5DDY)!<1^=j=NFn1`y+052VIQd`VGoB7v38Q2S(-(;C(a!r3xYm*G=roq@ z2)|SMw|fx9(^cfEL1GIz-%%2)X^2*0d#javdHZy5#*!^2Uhz3~AM&YSeCH9HavV>{ zbTs|xXzontCaC{NRU{v}%7Q`)a>LGL$b{&aXvh_r7^!weYuwS0J2DrqL2yTFvZA4^ z$lR<*byl<{I~vN4%*~EeXGd#1(U2!H*AuDsL~C-Qp`6IvoJe&}vOa_f z*$~);=#t*D&>8s ztqAs`^{v=kXrr`g(ETTESsmWoq{pD}%y%R@79qs)A@W!;l@iNI2`15T`&Fnr?SiA_ zL&{&c0r?9zV95;2hu=k=>6MQokmz`S@~k*)K-VDoP7q#-40vcaG9oV&q251ib7Z?O z-Rb0Brg-l@Dc&3J2NCh!9(p9tc+BFx$@$ug;tkp^$lfe4{UP)WmJEETIVAjJtVV+s zkf}~wrq;F)o`b^|e0yNvHjY???9P0TtxAuo_xm?&Tzug4p&{t`2;8HK}nyGJ0~sFF?$g>OevaA zfxgf4GwW0PDxoC97KjheP3LF6sjIlCd@xSKl7~7@-yS9NXjZI!JnVb&kSbh zs7mpOXKS{LGWFUPrV}4v4~!PttsclkY2?pIH-0jp40N zrw<-I0d{6SsPuESd$F(4h5S+)UJ6GOYmbzqxij!S-e8=nWBMc|h8ot8q*;sSvQT(^ z+kif9tsZ_BNtzjuPSV`H8s*{*s+A-9I4mju?@rQ8DG(rV$lwLvbFwu19S1Y1<5OQ? zr}NqAFiX%(tA8RvGmL5&!?~{3Nn{9nkafqggf}WVn)Ru8uOj7W-bopdXj)U&A)4(K z(fnK|K{KwZ;GE)Ao)n6>Jh`K5|CyPgAc$*f@uA~m$z1vf)j!^; zdNP7a(U`XE_t4%3H{yfKJIe2j9>9K%T-whul@vb8VIRAQ6@k}K*J5oPRiBNt87w_i z7M^+$)^ab!QtlO4#8sEIU;2Qr3)IuPfS-hQgR?GB?5qpqURmF5KPY{Xv;NJxBE8~(Z9#km{G+r| zmU0ITe!NoV$EF{ylsUtjUUDGuKdMsp-3ORbCMOEB-@3w4%Felxesy9$AIJwL0QU3s zWzkMOT5A_+L{17FDvii5-pFB>QLcfU*`zVh+bck0K~NpreXrviCJR*?=hQSJgB^vm z6q3qUf#*Bd8o7*Cri~h?=oKVBdNxhoN8py=cn-XX!A6Ph{R%}$Gh$87pJ-n%hRM_7gLYYus!TK z;{HMwaa%(}m3%aKKINZixv~ay0N-Ui=O|G&o=EHf)heXd_ClH8Y2QQTr%b2TX?1TQR;tZ#lcKpjtT8$U#bogQ_opGlTL^ zp}e|u#WY`*<`c}eMBTXhbr*FKwW**x8$UBQt_HwU`s_2lLX}NZ5Zd!*RIY!m{lT~8 zWA=RHo1p?xQ%q@$h|`WT(T>wZJ9Iir)aCT;qhf|)w$i;Q07IVR6NRyU#-%&$DW{!9 z36vh-jm}svpe(lO{)GCD?oso#^vvR!Vn8Zl4wvCEThLZ|WDvhknZxHjuc0&Vg^&?d zYoOYv^R-|Pr~NGCqTF3MHn{gi&C1a)G5az?dJm7>^W!5#O53Q$BNyuVs8uF#4>O4=lf z`9u6)an6BT5qUnzg-xYrxm(8RF@#?I<@sYlMU+;nRJ@!!e*TZgVX)!_!<9|0HP=vu zyIHHy6pNpEK6U0-I5VWN=dXc@>$2}!Onpl3XR^8NXO5!ccMgF|Fa+;wO%U?3{m3G^ zP>T0jx@!as&7f`B`|Y2AfY5fBet7B~#~%yhxyw!C6FY}IGsq9D$0B_&pmn$`!ms1) zK4;?&_S&NG0A3sZ0VOvLf8f#XKbCN7cv#ndGohu+u&@uE;s;{kHdI$H?{3KzXJZ6V zpQ2;;+V7r#YSLSfaCM4osA>X#|!rT#eG(S6ZDqf!n(%O#~H~$bsaR5Kf z^5N!xADV<%?yQi->N14gEgtOh2ifrVU|!AMmCN#TWzgSBv{>)C&&D95#&`?~%-DSc zjLZ`3l^&m?7SX%e9$+Xk=3U4#*u^5Ot$4#wpo?mIF;UnsqZS>aHby^JE@?Rm`I>xs zcy}9vW$OTVo* zDnNbwC%qRGN9cDw_Ft?nD58*^)Z@rMi0g5h7J4C~1dT5`mS~)qJ>J1^y3^9Q4r7lu zk1`M*rT5ICnGM$X6!na&`E0!>%zhDw_Ml%UxbXp=l4Bo-xeDT;u9S$!{uWVN59V@x zG2<;yUIAt}4F%Z0+$%8*uYKjDV=1NJ^>|0T#73%t64UtFO$6ID>@1IeIZXY*!ZLfj zpnwGSp%jO|Gc9K!%WqW*{b($*K4M5vL0nHHMuUVY#j^EcG{l&(X~xb%>nb=69G*%q zw5#tug-v^K4e(XCM+Nh{`q>j%JAVHa){c8v+tX9Rk*7?x;!jnc#rO!GMdX4yK_e*G zk;9+rw>Nj-sfeMYK)vDgz_GjTvdb%$ zv?29m$d~~tuoX2}B5KfJhfssIyNjl0HJ4M~t3p>ZOCRM!{{LlQDwKUvK&8ooh=6JZ zq$dkn2wJ+n4c(sVHJ?59VLtjxzD&KA?k>m!Y5p?J0i$efa~#+{-Tkz-Y#xY~B`5j( zAsyHsQA`Aw5O-idO_ScwEHKA`y$%lSb=-m7iF!#6>>}>KUIUc60xm;m6U^&hc6`?v zFJud%3yv&a>!(z<6R)+XgZhw?laT3*c&!`ZQA_)+8{ox0e7|+Z5;W-#&Jy%gT6MO1 zLRhlG%YM7z`$NtVV2IYj;~=Ks5z5CeNXcY@2T33Y&%zPxa*?)*sU0tTkqA**v^>muU#Ay2B-Y|}$mE^jJ7MbZrXP$>aOli53Gl=f zHMCZPHBjt?z#6EI*Kp|Ni1x=@ID$|H>BT_weuC7SfTY(6>edV-Yr*>pFl!kmU&#GI2yakMtoIX3*F*8+ zUFJEcJ+8slnEp`U>1yjw72((MLc(4o`GyM9T-6zJ(@P8Tun2TPC_t|=z*=>0$i1El z4h056c*z{y?nb$5u}9`rDjtOyfv5Fw4_=4YL+=~>DEs!KD`NQI6X?feX-tm(EIP$&K{I5^6jTG z*35(fBz&ua>R3z~a_&<`mODY%yFu94*tLM=+;6^s?VgbX(+=zXcSU4pA--8>@A4V! z_MGE{H^U8q=8X1wyH!j>p*Pz(QO}S&O4Rc!(201o8Z-mQBn%^-b9YfGbI+O9JIR7u zkb9G&)t({s3A3Y=88vHgL~mV-Uv-GZ@%^+o{w{PN7OTcySbEky+_T9npF+k7+sQJc z5~0@CdqWVuebsn<$xV*`BJJPYf%vtfkqD?9ciYZ8!H5&k4xZdg+57RBSDl>arU$uQ zd<#766?qzeMV`hZ+B5^N$TP~{GU)Xu-#}Bb95$Wh#z(3B@LYm*yy`LGhmXNmfj6AT z8ohS)c9LN1B|r2G1beV;JE{W{@;@EV#x8Q=*<{}(1+yUsSi}!^0{QTf8_99u^Zh%l zKlB(>&{m8VR^;%-UY}ysLZ4kg>Sk>rUE~)IYVu(6kTx2;gF@O~{wm3x^++XpRfW)< z?Q?3#UrCnIo$Qye2h#o=_zournOyw%d}Nypa=kFO&V2{qY|PZoQu)Z{*OBX?6H3fG zYfeTb?Qcvz4nT(d2WNxjW5#YplWi81wuK~?_4k8<(lU0yviJAy&e#D9HERYe21G^P zewwliw&@-zL|f!2`!yNWep>FMw@Nutf$|{YvFuon_iMc+i)$87YOr^7?8E!Srm+omm`|bdkJx-V4<%wX z0PhpRyC&Y!_hO&W>j={QYsh*VyL_PUQH?2XH=d8T8?PN8>jm@q4SRuh9M0|2rzVIu zvjqaYYZPyxJVmf>q`+eN;@k(2=z~wx?e5 zEV7#E$Y>X!BvU-&7<<1KwpAmq77qmvMrTasT<5EZEK0Ifm6LqIwgX9uC$4sBKD@Lv z1UC$^Toz})D;|!6#r`kyQ^r z1t^wnQZY*g8UF#Vc7lo@Mc+z6#l;wZ#-{l@Iv9iPzKgTzAL3GaK@3;~HmAV-)JXtz zk@&4xe|j5HOhs%BHdI0(3&f~jPe(CXt;D6Tr$waep+U0sr=9dH@Iw>K5O3xhKvd;W zEt5wFtv@j}w2uw4h%6?KNjdBmnPaGv%+yj+RS^j1L&I9Hwcm>efDxbSYPFd}AIL$2 z$Opu@oZ!M|<-xsw&?=I;UqxPIa@LPh^sybkRFI?s{0&v(lyw^`hYB=$AEsXbOgcCm&J!>y+o@FGenZH+F$6MUyjLn9>hp3(m;>IXqZEoBa~G0O6n9`-WkytU3WVLYX7gu*V)xf^Yp(d zU+0&5dTGv$p6=(Abh@7^V*3AD`8wBQEXYtfynLPiaT|#66Z3TzU-d7P@8`>ViM~cl z_j8E%f&I_T*V%gu=Iz1nc8?d_u@|o=fKs~qWm+7AAY3SbmjJ+heR(;H`hf1L+cWuZ zXT9vhYPWUcugnHTTz=VSgG#^Uh#`3iB?(c!WZO=%w{J$_Cvwh8_r1|@m{I|p3kN;){e?K3G#NU59SMYZc4{{)@X$%j?FsyftEkkDP z?4dlemqWCvi1t7l;dRN7wd0a_{x~DN)_rmO_;Gr8U6x+{Zj&k5g9hc}ei_z#P0aHh zBQ^zru3ob|flUU$E{=P~#j5VZG6H~~k%=E0e^D$yq0h`uEJm92ZBVdLKvUEx-=l?1 zTrfN4c>txDvDsduyi2>+U|8;VjPhRX-da`ymbi~!tIs@slNP3Y4zsP?2WDHI?}V%^ zhp4Nz>`GiS^dRDl@%F*-_-$Cja*#X%7TnssdnhC`+?6!ShqdrG@EByIxUVX95~_0_ zR^zJ!TOE7N%C54Gxg?%@lo3u)ryNC{VwSIKstBQx;gfN1P3(ATgN`mOdY@ef7ndD%usc~{+wD6YpdS~Rh^fFuH#peM{30rBo`bDo*S$>F zo$p}NdClm$5(kU$>xS_5z=FG31vX=i%^v5RA2^m;(_@c3Pp#qpwpuL4(VGu?{||d_ z0v|<{?T>dS9g;wxI+8$8lthCh18Sl$5+RU=1gfMu_GpNxsEi_mipnnwGHwJqfv)ap zLC0lgbi~=6H%~=pMgbKQwy+2UP(d9e2tqZD5JV-c{r{eGt9r?Tz?=8}zc;_p59z8~ zx9(o|oO_n<;m8LF;z(|<2sQAvvU$G~3(URyw9`K>q_s3Och7Ip8X5wr`3>3{i1_l? z;BHrUawKcc)YdiZPt9MaZH9~u9;MbbY8ENB3Seq6`eR<5-(c+J+$JPR?oB*5>cW%0 zw0WbnvV|v$wUl{OXm>93ys9`NxwUW=mD9)gQWkRQX$!xvaQMwYX%_B66ZNf0P3A7F z62x(Y_Z&`{+*bY){IDnBAU-B7(Quokbf{1^VT1rQ}Z z1KrJHq(QYFQVWiXs36}pSfyGH57JQl;>k?1sLu(DvW?PQ0V0N>AXRt@W;CT$a;M`(?Qw{tjw3KE8J-JO zjDOIt=pqRfK)y|-q9m7ibS>y__Vd zJN0kJQY~n&OTX1l#Lk=_A%8q4`;}Y1GNpvl-G8bFPJ38zR|22@Y}s`~s){AuH*S5bOZT!Bw>K5Ca8^lyC&G z>#d0dI}pmq8RJwf8;3<(^F(w`=Q5bMdruZCHFt(|^0y-8| zyBmV?N`Onm(+3jh%BmPLV}UwJ_T6r%l%5%D9<_Q#1_$FW^h;`iUfGZ1-$;{FAd!YU zB%?h1+D}wJ;?cX8w;20X3HCA* zn9Zgnui-s}+>Vz-{2SL@?;m`%;e-r|d?9%utJaOs3p(=;kiiL?Tr|V90v0IiocUyY zk=f1y zabo$*iVNJ2_aiHGfic&@y}nOaeT9r&s3PdApeBUoibw&X-H_)!?W!=krf&|*d*y^E zt+Vk_sPJ)xIYNfeE#+d#2yY6!h_``Q2>?ObC^D&3(t~5QqJ|<|*s`IJygt%E(>?&0 zZxMVOVIN@F20)ol!y6B(G0WCVhO$yEIEBS2K#a01R0(>!<*e86cq?bgE zgR}MEp1x=u@H%&q2Fuoiw2n|q3cya*_s2YHukQz%kO5xf0s(0UUNa1dG-B9>K(RoF z&<1Fogo%bZj7~sP^bfqwBW{e5nY~R;UR!J+v5PD-+@V8K?Zfn5E{qs=#!g45|LR*S zEqdqmqDH+z@ z6UGL6%_wt&y&$qW$R3mY&1rv)#216Th2d|W7};UrZ_Ybxmg1jeE|&i7J$ysI!HV+8ms9lHZTV=bUPnzSCq9Jtj=K80IzOyt0l|?q!dMr(PTnk zfB_=;aOX#wPxK+ipId@I_s|%B?&HvzL2oKW`*TlFt=Np&lpGWw?9a`~?)q2gQBIiN zW9fnI!az<)D$zc1z-pTSfneNb_$&~mqt9F>6FL_usL{&*7Ju&S&iuJiYormP{)j*K z9@+?DwyhSd?bx3i8tzX0xj&3Psxp7+gf{oy_Ws=a{we<47hpYNH8GytnccZ(n)9PX z{JAIn*ZjGSdZoFyfK%{Q*(NO|bt`~BqTIQsEXd!I|6RC^k%#2Y-6X-Cdy+rpBibj} zoqM(HUI%w>PKda3FDJ&_aOXby|ByR3n{f$y!z{L(!!_)|!v5U7$b< zU4cbt7q6f2nv&+Mg56@^6E5Ej9nEz-)9Q zjAwBM{^S1o3G95mZUUIvc(~V;^&pq)_##A|EABy~38n-_G4Ys*vUm*n#P~csn%IN> zmh})ui#>$VVh`e5w3}t@ieSqUA2#uhfIv0M1PIk=DjB{#$ z3yC>1PFhBWS;W)K?$Z%Z|`-(wPJ4VRF0SY~WMYLB35gb+YF_7C&R~ z7+Q>i2BdS&kXNsiZHhBQ<6`fGe2{CC;W_5*9*JeVzBhE;@&R?K! z6Ylk?cD;7yf23FsA|GG^5zBD9Kr?!Oy?|_pJGu4wt7qByskJ;d7MX%^OnYYUGbjsc#jC30_x%r#!(UCwNP{cwJpQ+0qy@8*%ac}r8gt`tvsibqcImUj2Lx_ipId*trk z(jHz{4^MdykKDssDtTR!r(E*LlDE|Eb=f`Tc8_fLmZo}Lsh;vwkDTf)y};|bz*ByK zN4~&Y+SBXm=_&8&k$ZYe)4Z-UPkEY0PV<(gdtK?C@^p`!?k(-*b@lR;_wvZSyrsRp zuHK&V-X6KPw=~1+%J7tDc;pOkX&?yz4BVX(-y~OLf#8ZBWN4~^c+Ry9i=PB>!k^6Z| zGrg`%PkE+C&h(aMd0kna@+^;>$=oaeyK;k)LVL)*L9hv{4$SxnYT3C>&o_& zXM5yqZ)tz8tG}nbzen!xExp|9y4+KKxktX-TROn&8sI4(;E@LehJv#TpMM~06nH<0 zVSceR6YORtSSJ8HK2%C3#Rf9-U*XwI@)KqWhn^)%C|qjs)=Xj~@fLx%Fi%)QJRu26 zqZvb{IC+YX9Z7SXzFA2SNKFdUk2COtSlhx^u9p+Q(<>jNe1IJ7W0AKE9pMs+S?OG8sN0 zIBUy&GuP+qfa^2GTPB~rgjl9dxV~{`;`+MC;QH?EdG_+FWz1*+K*c4&A;$TL}6MS!Twm;Rdd8u)~ZV;l0T9cYCO0f^J-?_D{_@R0$rdpA8`a) z)vWDAf}&hy`!MDZOOkjAx7RK)KzarDE~}T-UD~4n4BG{ zs~%yB-`LJFJJi2-5y<@`-JC ztIOz8~KjCoxZ9=`A#T!b@YaB=&SHKkbGxap#{gb z954g~8o3jo6jJRSXw&GL#|kYq)jA_BH_7+5(2%ND^Z@Ia6SvFv){8`4PIv|4WBR=E zX#L`w%Ts-@z>uM@TIXRr%REx`9dp8|_ku*}#1qm1M`dm{X~HAsSvaX#As zIe&)?QwK&cC#(u!oF9i%8(9~~)N;6aY2IjwvA)3r z9Pf|{MFs1^3aHH$MZsI5M}yAGq7{)wiS|$#55J3`c_oC2VZL8^5$qT*E0Nx|Ng&}n zP_{+c+U!h5IEnRf&VsF#Sx)OeMoVwm1~?ja!%*@QXknCOAVXo;f|8-X+QPS0cc27T z%sAfR$PHU}JClzn?&FD4UA8Ipk;P!BxlP7csOYJ+?O0G+^l+#M^#`esV=;=cD7p0| z@aw}gD9{0V(P#ehwO{#!=OS_%Q=nbw{5lONcJg8&~P|8~-7L4jrOE!ppc9;=s> zdIx?IC5o79Cyf@gSN5CnOYv;Wq1ggXQYrxWQg1*yaFpz&ET`UT`jWVtC+_BpoOA0f{9Y6PJTLAR@?Gk4e3$x?xSJ>L=8K$j zn=Sla3;#SX?iTW0>T`UT`jWVtC+_BpoO4Mxf&LLf2l^-O7V=%{b9|TjlDL~E?&gb} zb2G(zdEz~Bw~+5rpX0mKm&DyXaW`M&oLeN`bBXuF-9o-geU9%^UlMoo#NB+6bM7SZ z-gNPvxLe3~sn79U>PzBop17MYa?Y(0?=2ATiMxe-hxwyK%pd>E6L<4P&bcp(_ZErw z#N9%^!~BW&#N9k`H(%tOTQA;g67Pw-g?xwk6Yq(;dE#!q$T_!Jyw@V$6L$;w4)Z78 z6L<5(-F%UAt_4(;=8u1#7k3N!4)aHem_PoRC+_Cc9eB^Vnd0}!JbG$>o^B=kLcYTc z(j8`y^URtj^3Ix1_p)zp5&z8RAMHu;GfyPWmBlmu(Vi4P^F-oYmw3iM+LPjE9{mKm z0xK@E#egYPnAd4!g1F!(?&wa|a<_(~YZ z5)9fv0sw-bn|w$ny^tgeyEL34$Sw^D1eM{8;_p4! zAw9*pD23r_1eYUQKPM*t-s9A0&{d=H7o+ijimM0^#pSVRL17gG893c6hQyTzw z7Cpw8DB4)&;KRd-V@HMzQD0Wzw{-r(P&u`Gpj3STEN}_2z&z-bYYA`c3|Ru&9;@7) z!c0HgsI@(Sh5Gj!48DI(sBbJ@Ossv{P{xb74%{V0K#7v?1>}YRjDXWNa657##$hAi zZ6qMr9Dt%qsB(*8pbZUs6KsE*$o6;AvY~iEfA<827lyx+Ajz3b(M{Me%?2%HTjAd4 zEZhT>m~mb-g?qocs2zWweSY%2ylbQ6d*jbezIWb=+qFTK@0s>zknfH13_|>&X|eLX zwe944_t!(UzMYT5VF4f6D2QZtJ;s|^`C6I}Y#F%u9{V%q=l>V!YX?X4wR@H1bGJVu z`5muTQ+}r=|8wlmI+5SC(c3;2*=-SD?Vn_SW(e?xVApFaz=Jzm#l^wFLf+I?eusx= zFTYa@{-3fvqmy!U>?&s5|GVXP!3d`=K55ABOxrWa?~24GA>?-zB$EQ%ap!ht;5NpP z5{%S&vr6et5r|tUb_7=*?8@*@&I@dh75I_+;~Wa=7C41Jk;TgA-wxz|Y#4Pt7loRl z!hxi^s6s<`I3QXyc=ozO77d!ZLm?Wxh1rKTYD2N>nesu9QXwDA0nhMYqzkYQHSm;R zl-1UrorW8%!~N^fy0Z8@vL_?Eyci?0PAtbvi}!Y_L@JY2iM})-eyUb9%rGI#(SKZ( z1zOt9@?9*juspL9c_P>c0muc<1k?WA#Jh_L-rB9LED_DgGiN|w@ET^4(5f<`o?BP3XNj?1KzJ=^ig;tB@+F{wD?cere|F$3d7qlM>b0T51 z$F|Z5h%7*JiHYjeek_NG3fNjOE&fNh8x#gIBX(O5!XrEQz}v`PD_u*7+G6ZwLZK8>C27u zqBiL(C>?2dWl}i*;!KirM5ja;%mp&)`!-mQGS>iUBNJHVwpCvSm&;PgYD$Aq3~vo?9Nc7rV{wgs>Eg2OZ7^Xq|AdMy6o3jq~c&`>2yZw*dV{YBQI>juZc zva4!;aEI!*Ns7B3#_tU$fw=m_g^2$|@B0#mb*X+IFu*p9uuTP?{#Op4Wtgq2^i2JV zMOMN;1y>ADQI_&aXNphu)4vno0vwM0>95gcCqUNTQyIKmjQ&%+HU_^bgJ=WbH_B!` z+9u0M=)1cxX=r>%#c9f)0=yr1i~#osd_VAh02>9vBOyABqCDj|SthMu5NCo>qt9 zf^clsDcWXaseDByM4!EM()6ck*iyD-Ky|Fi!-_X$RQl*1I~O(`gd5t1a6{Yd6chx1 z$ep@)6D4m#@+P~Kisz|#j@)>K_bH7sBl~VZBXQc3?1_>c8oNjn)kbP!BbwNV7O*}~ z){tAA4e4oA`zVX85x^jAh8EJG%F7t^hp=TjA5YFg@$5*j;O2l&?Z#AcUqfB|pBYy) zT$(eQ#`VWMt}Am0KBi)81(xR~{Z>SwW2_+s2?QIXmU5VXILNFc7hMue!d7rfDg(;3r&Qgo}#rch}KS|)=upBYnvFel*6s1SI7Yg z$M%j^^BKX8wB?9Ukg2V22&U$*r+y{mZ%F(5GK+E-4{J^9i zQSudv+()oRqp&e#U`H=v1C!|GS&Y7D>tvrK7i_KoT}F6%cViC4fYXT%Vi`SCA9x6x zr|N$=L-pUV2!?rJD@em&pcv(_uM$v+V=5s!t+Cs&5@pR9vi~Q9mDSYJ6a9?AAyATeY(_Fye~r?R=hJq za{G{8>hFulcYSv{eK$d6iGe`?jd-FMrM}7guq5Io`#7Yf#^c{OyX?C^Q_=3vl!3lK z6gX`GW4~92jc%zN0Lq5V^8QvCIVAh&?RZtEx9~P#ownnpYRJq^@c7Hd_~V(XjfO|T z-5CBxgnBw6=fVc)1e*N-1b3zWv_ojgp$uoiT}6`nRwOz7x8^9m8)xWWFQYv^7U`eeARc{F_MaD%~g)5`+-SHJTH;66vRn6F}ha-V@?-w~C zvPjJMk(q#ck>-%nHwI1}_-N2~yH6)L-nZcy43kbf7L$1J{Nm$&z87Ikpv_FOR0BVc zwYgoK+7s}1S(#}>k0eDcsdE$c*>76G=+FVduHR#!et_RRpZ1bS_Was=<+-$X^Ba-& z{yhYzZfY;#Pnr1lHJ3noiQRzk^rz7^@TVkZljtggu5###m?7FS(%&}NK;YkJ^hZ$! zp1$BG{Rw$d<@Ghn<99P-%S$rLn;$Ok%iczL=QE!6^B&L7_ngc8FN%!kJ*SQFjM=ZJ z5{*XhU`bYr;Zre&)(z5}LMY*Z!KL_b?jT^Bp?(Ldp$OOpUmO@&5O;1j1GcTgqF*Hf zw#}!m!o0K9CjA_|vk|cEJ*3i@PKvnD3_dx+l3x!5xT+Y32u#|!#c%lo6>Y|Ad%w3( zxQFAl&4toE60dDMi`~yQcuP#YHkv{+URw_?W<^ZAw&O4`kZOO3>O{P@YjA~FJ)!h6 zpuGi3aR<$h8Ly4zzzEp3)I|F-FlK-{)5fm1sGZy$J`NGAtu?$>35O<^_rveg|38Fn zsbl{hgeYYFzXHrJV&x2f0zP7psk`s7_!cQ32D;Pk-tDOScg@xhlAl8Y$PWwTKd9AaW!qvc= zUU=P~rOf^R7k&SUh`vAUuhW^nADla!9I!LRI_xAN23d0$1Qqgca&c ze;+Oq4m`6BE&U|Mk7E|b6dRfbX@S?lQb&ceo4_js7F`n};p|?zK%j{K3R$U;2^=Kp zXLLtFlBRVK&W@ub0e@v@B%IwOi2@~oU*bUCLiztWtyki#R3n^S3z-FujrbpQ5HE?% z1Eaiu2xktMb+c?e$t2JWtyPPXqe9goKckv*ge2_$*f9~O?uu7QB#1b50kRALhA)HF z2{7Lt0B3TeT{U3Z4StO80UY`{ue+%{@2I0ewj zAA2a~}o z6<^s(FpeAK+>a2;c5^8G$?h1FU)0q@46Ms_U(Lk9^pI0K#f3eBIUrnI_Xs}d4!`Ys z{~)8(ug3YxPNKx(11N1PApa`jfk8FSH~b`OIS@*}Hc~9kV4q1E#k+!F?4;sPIRKLz zyv0HR3x}tdeLu2OoXS+JD4JS`6J^bTvocmUqMxZ+u!CL;5byvk9&j!=yJ`5SfK3~; z8}#3O8hGGU^rg91qaWW%IK|_}Z<|4QrDy?I1svTVe$1uwiBDZg2T|KfoZ=)Ofw$W{jE+xd>t|oM}Ez zcWXBvr!Xa~^xzU151b}tGfl65&~4-VgJxki4sGb`i z#p$~WTaKK&6$s8B0oyy2J~b))Rni9p%rWf1ct1laI9R<}ML=Y1zK{rxr~TYNmJj%O zCZ2hY<6Wu+2c40S^oVH_ZwJeJ@^EP1K+ILdGq zd{a4|hJPO&|+;RoyG_I37_`k&{xS+G$8oK>h?I`UALge76ch zMoRafy)3iDXFxioS=gZ_lM0wW3>WROjkM(!A?*-^qIf`QhiH3kq=9iMTJa&?atXlB zhV23RtiAe0UuI#FT7V{iQ#$s0+P^Rc*c&m7k78VJf{cz!{7A{gVV@4G(&){6;HR_Z z&`|ozT`&;n$50}9DoCEQ?kh=qnhNq2AHpOM2V$hBK>EoAF2vl|z7g(gU8~(Xk$j)l8+@kSy!q zH$W5wyFsu^a>H&L`NK5qLqTPIlg9aqhohvA$4Eo77tj0z1{{989WxZUM7^ftk6m5srvw~63&w`;|W90PR4Und`#zweT!um#-KNd z^dh<6rAg&MJ*6~!86MO@9SrKAQ2N8MG>xij9t{B ztqnc53wnM(s);Hunx50n#tk&-xr5edn4XWqouKEGF6j9xtBk!^6^*4mZY0xiy6Q)} z-ALN)m|piY==EO?#M0{%*gc&7LH!gThROFh&MV_V3)OzufiP6Ow|7jn_n(gHE{O0@ z98|gWlJ+Osk#HWPgB(#*5K}M*AlP>i!Hx%r3Qb0iGk0%fnoRpE-=mnjn?%J>1Q5Nh ziLR;ctDjz``tK)3fYgZ~8VWZ4NIBK-1-haZ5br>1Cq#PD8wQd76D|xQZF`Uw{FDVz z@`Teez}>(pjl_P@ks59izUK2&Yu&v59Mmw!!2z0TxX<^H8YZ%QqS|{7`or_rAHB5h z92)M3YIuKc_<8CNNh^AO1ATDqIkfkwXCnh$z1z@th1bJ5jBn9-w|B(3w0GAtk@l|o zqFsAKtA!Ks_v@4M&bz%&t~rPC&5vqtdi(aCz5ZK2@AiJ)cn>D9RYd;5VK$F1+YyjXXjz6Og$yy-dd<;T{Xd|Tk#CBewW3SOc zmXaj*FR7#TxQ6z#9+I6pDBCQ7byO5K=LvKYm=sZg=I=CBpjQO@oBZn;f(lg$u)zd4 zJy&c;@EE(~ew&ImwVw^gvB5+8Z=8(@_Ns0nw;FM(z-J z1M3o6eT?~oVn(AFMOz8YF;1YX6g_4KfHIW@xK$VpMgP;{qWdj-SP!JymXcvKH9>qMtb-$*X z1IqxWpJY(rGY!9JnZnI5jCDBGUEf69%ygR9sgc^ipMbJXmwh0ZGwmhXae;T#8XKPj z4<}MgDo}b-mgYcv8qMkOPfr5!?Ye})|YOnB0Ot` zHd@LsI$OU`lfMwiM#R(`7>C?#ARC2y9izk)y(aX&Xq-nSzbP8eTHEN}8^$%9BIHrV zctSd7lg?ChOu2vwMA0xsNCMnI#k=m)@iTh+9n<&P*(qt<9!5JR~m5JLfX7mmLX zj<28v0njpjhs*Ng!-O@=a!w0bOot@MEq{}&u0H$tXIiG+6His(k?d|Sa0mX{$b z4FX@+J#L+PWw26H`-&s;=9 zKt6b%lxmYv4q0GM<^F~Bp`XCtIc=1uI14Qv!{Vx=2#%Seh`4d^dr7+yX0IH}D+vRj zCZYFbNjPGpmZgbU8EFDMIZeRL;Rpb@xfiK}C=WI&LoGAEBq`X@Pr}9e(_s3xyb0$X zkc{di{Yv?A^cm{YPY5>8mSX5nFXhpR=ue}b8VXcMAJNH({|muY)eJ{$U^<3M9>Pl| z5M>)M79-Fqu&KkC^pFw5O4cq>wJGTJ44$t{SsMfAmJ*sCOGJN4q_UmOLXTU|g3_L}|jH?I70D)@%Y%RHB*cUriv&p`!WCn0G zu`jZ=0$765oHvjp)ozA47agVDCkO$RZ+3>#JuQNL*^2}bgM&iU^$y2wY!_ARJUJM$ zKp1GAuN(FQubKE4;4`LOHOf;)@x)3XFxtVeL-A+}tPHMVyk-Nph`VS-M6_uHiNvhS zz4aooRZeK3Gd<>VlK4Jow^4m?QSKa{F^_axLup!ySZE)M&qx4_z-KJ(Zy^{!254L* z00;rlcuFAY0icmk3IWh~TmUrghyrL7c!8tG`l|X{+95QK2u_H63}hcFTETEi+$iQ> z_AvkQUORlozEGJFJ|l3Jz=Q0-YH9<}m?;1n(fBq9jTkx#01kX+m^O+ANS=M~5fO)<1y!20lOK;H+JZA=R6LG=Y&|7s?EonP zYH-{5Vgcy*>V=mBcRp1cN8!b z<15$#{|&`x|6V9Ya4mD2F>UyLvIW0@)}vcM>+xL-7$eNT=Fvm^G907qV>m|HH{XKM zmbE9v4C5+Eh}+oT^;$&yBWd*}@>PUnLR~kNO|97Jh6Pu$KVi&o2V#!t zzybFOY+39`k}V{%E;1S)|HrvE<5II3k;x$b#qe)VqOr4sdBbODOaV2;`Amx0 zl!VzvrLfC{-prhWp?HPg!6$|Zp=T~EY$U-gLw~h^`#vG;?@jvJNz%>r2w{kEM`qe& zEHcX;GU*D1xZrRzA)X#m3Qu$%UzjZ`Ld$M@RSbbF`-co&@8J3}mtKy1dd9mMmfCuR z$3qj6^b6NuQr#;jk$$r9m$#H4XZHv3vg%J5`Ey!SUo5+p-l`}k4G!_${Mzq&pygP= z-PW?o#FU4k`9o>Bpzws5w7G~mE1XQ%Xdl*+v5a{<*dK@&G!}9CRn%sso_#~?lww^OsP4a)IL|nNYTD9aRr2NE&#;IQ#y|neVNF0 z{B;^g8@a7-qRUvf^?V$IoAi&D37_?%@OnW%VYqw-e|Rm0O5D)C#P?~!snFS6Xr$@P z|3{rKXCKfd%)T#C^}Wm#$@dBoEr$FzwvZMU9v1`38Swn7?;$8@AGU)?0Nx1GfHq=( zx@$Mh(h4RWS5wY{1JykPzd|G4!P$y#rCN&mBGiDi_Tgw=tbLKYAH0ecPL@@dfc&Ug zUz7Ae&RQkI&H{Q#fU`nBI#5P%fPxRIO2g|z3#eI#S>^zml|`PmoVz>a?nx!W12tS2 z2el6u)(y;8oLcZ@^-{h1&i*_pigqXZG&viXs6Vkgeb+LoHtc)9K%WR1KmgsYk~P?n zPfAkey;g&s$iB2}xJXL1f{v3K);DK6&a6KQ3AORQ9>Ujdf2X83#O+ z@zFk2O=F_Qp*LiLhAVigQtMNT<8ov-_t46NB`>bWYxqx6>Q+{l1h!F+-CwpcY93Zc zZ?T4s?xLmARfhB?lzw6dEt5l`^snh6x&W#6c^=e37}T$%+V{Ay_o#`Ms_Cl#9<=9n zj93+SOaE+Y9}L#JVz7Ky)HYWb1IXrXj?hP9IN7udcNi?y_g5M$*&VE*t!ILf;WVC- z65K^!B*tZ@USH7%bNe{V6c5$N7`}R#E@N2=h&3h*i7rLeW zKZhofzV)H9589^I`06pltDuO*^sd}k57sjT?RvvJDnp*#_zHfcx9iE4a2b&(X;h0o z6hf&s5-w=Put5}&ex!_wdy{q+*(W$(-!i__)&LoWzOpB;rHB5dlv=Yi1AifsaZ?lh z_o8*L(Pzfa zQth9(%rWuspOqzr!qz&ZIqM+tk{eoq^sz$nlf+-%d{F-gTzOy-ZrC)22H-VO@j?0M z$B5A~^KrSedS%oL5d!MI zJr*2k^S`^HwL0iN75DH&L>dMEb7TQ_`|4vsr|Ez0pA`3sRjR9^-GeqV#;pff3`U(i z@oS$)gK)eindI?V((?^U@&|#jlv%{r4W)naS%t-Ys+;>GOMoyq+Vl^7SwQOmt8Xd@ z4Zdrztg^2zhZ70(CPmI~Ae4fJFZyt(+$J1JE|Q`C(L|;t7w?#M!&Bds^p~aA8_*20 z$IaiO97QCsGEx9;4PFF~aul0E{3c{~F#5ETMQk0}iNf=v@-}(cuQO3!)fZ4K-p0Et zcGRh|e=t1JS7X0Hv=QBX8+KcKYjozST0&dNpXrtxY$p-a1f$%l{|pR3!RGjZSWP17 z{11#qwCO+E12g4Gq`Bob9Y8zOVUJ}`uNtoodyiZ74`;z?Y3^WO6m z{3FOC9?<%%)MM6WKVF;MzE0QYyRqx@Rbza|`KtCN-Qb(H7gXTH2<9BChrBZajS7|- zTcd}*HQB%975qRtndd%{DY?7jCX_yg+P1sM@5cSKKE z5%4P@Wvwh^!(l8ISaz+>_^u(YdLR5tut7C|_(hqwVLyd|p?jSTJJK7eC@-#hSulki zk6-w>0&9eq)c0=RE!dCZ7Gp9j(&!fbr@Wzn`hXysU8IE~`)a7CARskO_!R^Mu03JG zk^dPE{SX$@snG`t01L9Z6xzuaLqdTyfmh^Z;>Ga#m3>T&Uh{FQd98SYR~iyJIH(LZ0-qo^L)U2tl_Wf(89U8d?!ZrN{pC1$4S0cH=w!0c=fDw_ul`Ef~jCTOSCiHj(UW-er<~ zQl<=%IgjGM`DC&|^3|*zVOEC~o$}s%K!zZD_XACswxtZ|85p$8-5;Z}H_xwMZga&=Q(#9xl>&B~ev9q`K8e zj5N*A50D){gM%re8eSQfQ@s*!ItMXH<6WhLARwpU(4Iq}~t zxo%C>PxaqjWuZgobjRwkN!H-KbhwM+u-euT`~jt8M%BsvHn^Nf#WW7JTdFU_FzyE@ z8B?iLS5NQzKnA1h3iY3aPi^$-;>(k*09LsipDqrA;4eg1Yi1>btae4ic|7yiqF>K~ z;J~B^evZfWanE3V0OG@Lk?JU597Ti5K-5SWW74bD8v`3jPW87dfg`uP=4)&8RMrlm zZI({Qo-&eT6kfBi1Yc11osb;hxLriT6MtE@ec3=1tXr`*gLmrpp(I)cWZ+M&PO=7w z?ZY~5rPsh^zEVtUl)mE(FMZ#jZ8;vCU{S%Am$-r_L9A++ zO@G8g1po4m=56V9Zd2dvVh?r*xDNrUsJ^O~IA4v+lzoI@G_3&#gs-ZvgE@B&vS3AG z6hp3@_wA@Zl)eu@Y0OysmdjejvX!Ouj3pCO@wlY+J3#3$`XTQnzV30Gl=+5PU%nZMCE3JF94J?T_f2At5)lm%hEXU*Jz;JrM(cg6*}K zZ?6ulY48&L;177ydUo|_>{;`<)#Bjy_rYC#NrnQ7V&*xCN^B`h4%{_#rLKOS7{W)Xa4_y!Ch z>>oE75`LJ;9gEmMLT&~b2iZRY_Nky1_Kz@d3&H;J8N5XHkD(a*$5lKTIB2)Ee|*a{ z9yo9NN3tD=*gtN@)VWWA)A+q;2Pp^w8xl<00ch*U^zjuswV$8uKqksHZ3ljgV%nHK zmLf^2oq-C&rjOHc!|a&KFl+k*J|sY&B%oma*`|*r;Gn6~i1BFhOCsL$DA*6^i1*yn zuzy4z#Xkxg>3&69F4g`X`vDAYda@A#us?AGf&@qeg^>wcEK}7)8k8!~J-Qp3=@>LU z9QC<{&sQvO2i2GkJa(cUQ&k^gK7JtLJ%bZyM$E^@Xb8arnC6FUjmSEDK_3n4GvLKs zXBw`>hI{VV2#xI@8xilZk>Wif+%xPS)2@rPf85o%{bPvZJG1>GP%nr>x2grZ*#2>- z^mc4~n6IPaJ2xV}bJ}$g`^POE;Kg(h-&sxG78Bpuuzf^)XT##N0|USIwvVj>F9x#{ z*vAW=`9{o-whrMPJB{zmm4W-QC5Eeufv4$gfWg0+_K?Q`7lUf0xxK(fQc1Cfk(;CA zJAXy-osl_gB)K_kBniA2wuyuVft-xPP1s1%jH4qLd}JC)w#vyzNw$&EF34lpKJu7p zvUsKi6S0q66Km+G{9j`qsjKaRJh!or+>af^)>D`d01u>%ePp1M_|98m?IRE3&fw z+Fp`5oUqYk!>$CW|u)H~J9x3(f&^+=oR{9J3Xvi*OtS39tZwu2%$z$rbW33`DWJYL>>`N91Gprd= zwdt5296cCZrm=*k16(WfRYpd7}tRngyYZzJhlxZ00=BrqKW~#~0KszDq zA%_T-28U<`=aL9RV>1{USjnGE0wBRk+T|&l9DL;TS=;_tM#hHRkL<4}|r z@#VPZRg;&=59UTzz?22&=FhQ`N;dsD4zIy@&~X`U22(?qpX@9Y~XE(@?jtBXFO>){(-uP~kk(NK7;0 zGGf95*+|7YJ`;!Ye%P-AT*L%9f0Mi<99zapHeN8%A`7`ps?0@`BO@`DE{3wSR;3^= z-vtLE-Wl6RjzJ9h<}seMYl=N(8CZBUX#Oz(XV{BgNwtN7zqy9_8|W~b*uld;cm;>^ zAq#cGyTfmTg1BC%$(>|;AGFD+fG*bNKQ;5Ip@J$@6`8T&my58XDB``r@dPR_f~oaThxB$?4|~MtLr#Vz>>6lF^~yBa+US6EVuamf zdhn3=If$WlMf?_$5PaF}NpisGhx1JRz_=J)S#P{(_FfqGeg6o=zIHD8BYC5SmbcV; z4DE56}OkFpJmGVhD{FC0Uluukan*G!)` zk%?daHWY$$6h5+xAl#Ip8Z#HIZ3Po(vh4dQR{g$WPg*yu`hNDB<1n+j0;J5_!)y2S z@+5gntzMVaQ*QOhR&QyX*A?d}kMqcJ-qLulE8bHc?~&uZr8ck2<|(&%WSh4%!Rt!! zlqY!P1aD~{l#+qxJBjaUS`Q2KA`1>ccD^nkp_z;*0FZNzolWS;jT{6@fI z>**=(V^svj-gzk{uN24o4{{#HG$piSdmSz?V$^pnRAbBCa;Y{{8{)F7$Km??*q0g1SC20_L zNg28YAe}?18aB(>|EuWu6fXTg%6<@4ABor82Y}Q2am76>5FMKY)FP;fAb)41>14L5 zf#W@-$qk5JQ5DZJzkN%wvMdg9B!rywnV*rQZ+Nz)I*kSlBiTjK?nnZ^l>rGCNH;Z( zVWh8{V9F+U=rrJI+jJk_kb2el6 zUAftmB>mIhi>8S66P8DxgMa$@%XeS$p2PS#!i~1;{f$PS7k>Dn^Pca6+BvlMsqy9@ z+x6<-ne%e)jTyI^3S$_w=Oa9L6_4s=euE zd(V3R)7T#Io;$G9#%_GV!ttADY1f1P`fT@8QQnZw%KN=hp0_t?*k+0lMUB?{`UtUS zc|*+?v!u7S$Xj7l-Q;dal-}x1Qf$1j7b>G-9CF_3u?Utr=^wlZTh6;vys~w3XqP8( zg?EhAGZw|+QhI9)4whq+7Fp@$?J;rT8{ZgP_!>u394n1nvb4;2Cl2q(()-3se0R6; z7T=g}(ajObJ_i1ix7L3xrJ|sCBz=vfq{uBQ)W+Ht*{D!@lVRP*qTU%lt_P)=}%Ys(+z*xjGqgdjvbGarXxLTN`+-v53EIf-^_tbvM_!`t#B?L z3;GCyP(lpL1qCEpNoTpt_j8axls;k!mIe0Mek44>DNl~Xz>rd9c-fL50P#sUyU>vQ zd?9@?bjpM-q|2iNK_7PNpT9_n`k%le(AN~MA9{K+n?fE?YQy^3tb6%lQ8$ifDgoJ} zZrEfdAv_1@c_)?k3Re!!E=iyFh^YQfQGE_qZ=4s|-ke1WI1JZ}Osp=KO*3j4*1ywm zXr`gTI40;nK}&EA&rz^2++MQ5L%T7&#W?fgnJ|3kXQ(kUr1AhCL+?7OoFcFuAree7Q=EG@G8ijCmJt&?kp_g@6o)KZPmbg(ekU=2Rs;Mm1hickg3#zN%&IA*tU8A1RN^t zS^tg(`!0SKH3z$ZpCQ!Ex;;|uAsvD`@d>yhY}IWCc)(cjzQi=cXC=6+Xsa2TqcwvF1YQk5lzzs?`Ox;PLI| zV;T3M^gHM=L~lOuQ>J008!Y6q9VTC(FLH{-^+B|MV{)1eP^8 za{JTgzd>uaED3DrYHX?1_FyJ*+KilwIH$kxUdrW9KMs7m(ALSTMIWpf?&19@2ka(3 zfSz`;+-T!_bTBj-&tAr}IH~R(suiErOi}&CZsPqlc=N7fl)H(ft-AOLl+7N;wYx}J zOio2w!o8G8hqOhUR;b|3P#y0ciNCwE}nd8JX; z*~F)I5t3AG7Zg4x>GMy5HwXE%sO0?HOb3pxY;7jhevEpcvSj|BTS(}bC^rWNdmoaR z0X7Lq`gN!KSOTkXt2h6RrUxed4`cPw3w6hl{C);^^HC$Mwtz+lYoO6Wd@64hMW955 zSJU{`h2W+C3sDYC*hA_6iN4`sx_BtnEvAYd78wG6!A%=_Q}bAM86=OVxR1?jwq*3? z$5^1~P2ek>=mGAU0V@zkq-!4{)#%z0}04(Imw713mK#sNQTG@YlPILj5_t)Ve&NWMG@XIDt z2+fgS57R!j{%R?f-ngdvQxyIH3a>jz-NPsR!;@G8fKX!NBH^k;B#1YhXF#I(1HioF zQ>g;|#=4nALq9d-!VOkDtwWr3X*s<>UvK*$tp38+uB6RB{lrvo5qF>{eRCF5@ow1k z{e^#fZv>up|NCSn4c|S8RYTN-g$nw$mojPa7v3kzcspE%A7upozzr*$@*}R`Q+mh- zP>VA0koH`Z{}?!sQ2HM+>7bDFk%gKJF#;k&sHSI73Dl6%V^lX&e-yvAMMadnAhSrOGu z@@6id(i4&&I8!T+Jkq|EXdWHxC+Ov9V-zhtiWL}qNS}`J;MBG&Tp#l)G86|#1`CPd zqHYFz<0{zQxSg)=`6F%0k7du)_v5Nv0SQ!qnLA0Jg71Zh_mw|q;(et_y`%Ymf5Plpz=HhhmoEAmT!NL63>Ev`aXaD14 z%wt}X{`oU)`)kT0LQvu@;5ireG@s-t;q&#`pI3=soZor12e%&E$XUfdD=`Ni@*iGkXfI8^q7gDJ!8sHG&ta`p z`z{&;xGd~$2tsN@d{+b}#INkGhZ{yq<)Fw8x_~2~Zp0h_3m#lx+BQf}i_~Fh+bFtg zJ*?`Gq4Gb-Q^D;Ap27$`96+PM z(1*7Op5gpM86t@F9miz7A~GCP7I5&@O&CAapkO@EH`|REk47`vEoYd5W^#1a8ssE# zF(do?Y@6g^!1H&L{|4UMgeP$0Myv{OzGpiw9fggR=G;T$QcKI35blrOPG7|)ePWRa)J*s@Cv2ije>Bq`H!?lT30O}t_H;Qgp}4vd!t{qSgrIfU zRnnYkp#Dqo59V_?12pFGlgN1m;g(?&4G!FaJTm-t;M2f3?*J0iR#ol{3_?0$VM0ng z1u+e8Zj$|D^8|4+Vq%KANb28v$^uo36H8_k)Wj47^9Zd%MicfAQeLvLE;VG|GO z71t{Mv;fxg2U6{F%HxZJt$FThOCRy82u_Fkn!U>ZisTxqY=@T4{@r;dXiNijk zTJ}BU^u;?1fNJmdApso&-ut1TxSycXM-wPLqGwY0%A1i9ujEN?C$4A+ zG7$uZ@j@~X$THGm^5;PE0~oaXTFKcrb(Bu7AW*&2i~jpE)PhkN6`uwYaJ$GFOs4Y{ z&kvS@^C&TTcl^| zZ&^X~#4+Acc9WuQA|Na62utZncGe&dEVZiz$11akb=XZT1Vl!_O&F7;G;MWI26Pptu{M zS`m@pH0XFJ{V#v001C%HoZ1w7etmF+WA&H}PziABpXle4(&vS+u$Jb+Lh{4`LrN@5d*demyHNT-8hn5ET%?gp z3wV0R$(CyIW@S%k{=4Ce~gL63H|7wDlE6GkQ)>Bl zK5G^2Q|Y(ryshwzqf`1m9AmT<+9pjLh{(b3bLqG8ydw^+$)T-vpGd6ewHQ`5WCs*} z@~yUp#*#)TXEC1DL>|`FW5gf_fvI9K$XXI41ld(R>97@*De^i%LN}IZ>mBahR-oG_ z6>EoQ@3LfKRX6O)A|X=4{$#DGzlEeUs4Q>x7j()l*1nznB??5YFH?&Vds^?~ZnhR{ zM`!OtV=@6To**YT!XHU)IM~;{*Cr>Qc4`Ndh6568aZ!g32}=@QZth#G1!wQ3BEeMl zFV-3zTC2m|jBkvfUM_IB_hl-{M;*X1Ma6LV0vLX(6KItUhk9zK-Fu7F{KheRPaMddGkK*m`5*A? zRO2TDAwKy-CHa7o{Ed>l(s6XN<7fjaNRjF&PK5rCTdu@NtUlWGN*AeaCQ@eaZN_8y zef+V|Frg(d%gaugQM9-_QVa#?4w}-SRxdB%d?{d;l0SIGs!GNC=%b0la1U}fqoK{Y za`GBAxfyZ~My_n`tu!3$p(L+H0qqn&W?MmKi%mXnXr+@Ps@FOri#r}QGE zry(6Nv})AkCN+5tcT$&=w^LVXOp-7SXi~$`Mzj*@(Bd^(YeRE4wA2!ZRdor{8us<% zImSMHGMLs;XC2yCFl@?1WQ;6l@|Q4Z%q+&)B)O>=X5&j8)m2mPd9dnUj&!|hMqY|!x>Lv{clO~2tL~YGW>#M#d^k2? z16Q+j$I+EECzwt>*oP(xJ#OwoW0Z+@e|dqNyh=&_N}!&gM;HV!TM29aLKG4NHrk!5 z&Hh3A(~uJEMgH`sehNXt<#=76_m`_oeFr_?FqxlQA2szMZL|O#5ZNs@(w0tkiyKM)k1_^jn`VovVGsZ#>Q?w+ zkRKU#Br^){U;*OzHd1*L0e(UfK@LBZ@LH{Dwur+~4W5HCoLl_e|DbnFi^Y*IgGMp# z^ovLaaAP4>Rm52FYTm`p7PWCT5ocxVK^P^Ppwl=5!+|5n0!M^>EXO{zQn7w0&DoA5 z2wbsp;m-mo73`*V;|9)bq4X^;(Jb!|kU$&8E@lv3lJ+1dB8y3VQ}&}lLi7T>_i!T_R~z`rFcWxAf_$PAnU zUm8t-u{KIjL#x2U&9H|UWh&} zakIar*PXfFkgpRUalZt&X`q>1^#Yd8z{&8l)h5Hjkydu?DXI$%QW3t>>7UX>V4YD2 z;O*_N7=g11$6eZ!Y-H$7Vceh;;i2flL(zqYq6>zitQ(Dm+Ko)Ckm}54JF%2Fq?EIZ1j+$pj& z(+`cyKFV^J$a23JIvdsCFT5aWtjI!A2YsZ-vgTVZWtSMbu4Y?KVEfkliYy-;;Ve`B z!KI8fv&;a?r5}5YJAJ+A^uT7$lD-Q+)RqUREgy?4J4KdEQOXI*Nm-`S1pHNGnf496 zK4iRT%Rw_sCN+0~$fEQ_AN)hE7FljH$Az2wfXH(CV$QNqbb5{1Tw=}i>qVAvnVjV@ zk>w9DSq6wKc>_4hTFzN`n0~0acTy=fk>&CJoaKk2lsjWe+4U%o%a+SIOHYyIl$nLc zWtqq_Ph^=SD*Cxu(O|0R1(79Nw53pF@tIjXG`cfImd%5>qWf~_r_e_~)ZG14%6O6G zha$^ZktLyvk!29g^wr2hCv%+2$KM2e6z#+kGWH-S0@k^I*=Wn|l8eJrS+-5}mn5+c zfVN`dG35MuRck!*7uolYUQK&Is482}eD{agIynJZlJu7s;~rObpZgnR!WFpZcbaDq zFwsFmFNQ10Wa5_)s6g*YEygY`PnNH-^{0BO67(k?L85!*gxhY%VfOYFH>r@PEnfAL z@?KX3KOCU?Zq87xO^}fGljf55gzCE!Tht9n^5PrtxbU?%5sUfeOa#CL@s&3>C=CsX zz<6m_apt)D3Q>nJbeq!)tG z6^YwbYdyq+IXIE^!?|^7xYf(Ttyp4Kssg1VcO5Wt5@%p{PJ_{F1Ng<);Z?M}A8P!V zxaWrYi*UJGwXO*^QT~Sg@xY+jCf~oMRpD`ppK+b9mmKaRwDLB^t=sU@W_mx;fQI_s z+>NEjFcfcKykSj+7A`S|UVcB^!h$tbfHO$zA%`F?5#==0cf;F_!QBE{BP+IS49{)i z!NvR_Tm_9Aw>lH)5K(o{%cqq+#Bl}v6y8Zcw7`c$%A;4!#Ol4d1Si^Z$I+dR@v8s6 zleCt<9Je4Pn%-@^w)Y)b{eYP1xf$Kn-OSEqt zM*+sVP4B{esY-Sn{oLW+J2H5+QV^`X%i)8N*mt!OTH$Gsx9%%a$46>l0PPCGexg`gp-ydLvW!J>S^Gh@6^8?#{cl5Ko@UuP6f)8i79KLZFzxbn{VIiOqSO@;HI*T{X;fbqxB;H!xReEbwoWnXg zDR?Pmbsrn~a34ytu5q^(J>12i;R&!$Mkf_vWho)_sp&Q~SLeM8HrVI3T(8;qud`f# zvVr>Yzhb$*`#~qmwP#b?G~+?_4g--e(44=q&uhcan~#15s77bO{>ldh!2-S0)m$hu z>Ou59pj!taocf{SAN)7jy1!U@>w0T(!5WxCR6rNCtwdXM|6HenHM!3~~m|5?Hj`A7mEoKW=3ft$}`sMRP)4r*D3c&qH_J$ywsJ@Huf1 z{ZJM@o4qEo+&rDL{F)0Zyn{}SlqG=@&Z@f~AmUPfdk4U+HE@f^`wA1PZ`%bQO_dF4yk1{Ez}(ti1_JcR1hb-u zD*dS<46}bpNC~`%7F@l#9Nn z%QcpB-7j)cxRRT|5L!eNM+SU=b|L!qRkuqyEk*L1}&F<6KEp& zc034Lzb)c=9Sh}3HP-7e=h`50S>W~&T^mt*3SR}SuTrj}mE;^UxqIRhv}->39=akm zgHxqYkUrRRIo#`*9ZdOH+|9nIHk{B zLmxye-v0z}#T3sU`dfni`7KRG^q(;vo##aKzG#lc#6v7GXlf@9QIu?EUvJP2B!6}c>-zKvkWMDE+kB3EiCSH#d1Y&(o| zt&}-e5HO6Qm3jEhwYe70a(%B7Z=lop^59FGa956w3Cm87uawlg0d4vhJ(1^DPa^pD zbgZz(KIehGdY*clbA*R0l^V3x&c&C!uM+DZvmX~~{vdeP<6XW!g+Lj4ul^(Q1T3L= zR&}Z~bEmtjqbR$(*>l)gG_yOp-0$?x?4C$NXJ@#$2DP}0-q!J8TMi=S(szBY5(A)x ze0lIC6WZ{cp@qQjsO_V4v~N7MFOfnTYWu=`&N;&EqcVfmeTBpWPbAaZ@SFE!zj+E# zIlNm6fFaD{d>Y6ye&MAIypTJgf>vdWcf3nvMn^n{XMu|%`oE}pJmkr9Bu{SEcG;6u zdC~^*B$;=89fZ@tE8Y6^-XcAZ(pRYY|Bd`Ib>iPZ3_I7k(w+MDc&;yt_KQ(hsvDei zVR+2l!Jen)U@kPI(fA|0Ci?GUr|%!!JEH&4b^cn6ET?iP&_MfBj(V}1DKOIi`nNQ^ z@LITqqW|fA9e>gL*5kVO-?}3_vR$aFHnKN~-#oGtpetfzQ{8D~TZ<_O-{gNdpGWo$ z{AvHSddQAGT?>x}&QONIrZ-!IiO=7s2r zkn{@nd<|uWZb=y^Mr+`}3gfG=#qv$g2gg{bYeUafetlKf-~LfN9uLrX1RROK%Z~-K zUI<)L=tIGt*Bid;RMzOb!_M^Vp6gp;(|v$w_#O5I1|}u2i+Xjz^WC_YrTe*ew|~QO zlluq2sS`k1TBb>I=C)}UAig;&*fR*m#&RDUH4qQm@)5FF!o3=60})XVS|5Qxg4xrW zVpVrm6Dr8iAB@LZ?-Y0}9Hcz0yPWwM`F?0iQH?EujSBYMVffOCwhYzBmyYn40Lx0i zmz1jXN^AylmCI|hVR4rGG7!`y4Lyl=0)xXyv_s%`6p#F~=tqO@BL={MDbL@pE5Vqx z`U?C2!Q-}ZeSg3fo9@|;vNqY*x)ZWTdz@VAS2Uam&2$NgFqkleUV-E52-Yj%5riHf z)HKgz+k)1)Gm)Znx8>5#NA$u&qapBp;!vg001soZUQl?`XwL=qH%AAqwZD07ART`IdW@UWgA2Nt0FYA?)p9y` z+J%exz~1knte`v9nKjy$=)r!jAl**?%%NC009+#ZqidIW_T8~6dfhMx9V0}oMpCwvI|ABjZwonZff%fU#( zfP{Xin1;G{p z_mcqoOLV*o;)+e12?dB99Kc1~&Y;0%m&-F>kc=K`dM$7g6g$7=UO zD!S9vg8e1T*y=uFiwQ_&lmC#cE!Q~PHXToO)>boOBD2%#c*PwP*;C zms^5)2+8%al_F*r;%+QAOfpl94p{PPME^%4V&}8|@RvvMfxQF+1xjg`|GVGQ$E~ei zK{BryLs|o+(WowCSyJh~wYdHbv&ZG~_OSuHWcH+C^gW{5Cd#L>{zc|3Of<`kwNNu#B50cSz96qC99HUD8EH?qP-s&A{xQ`lym6wTX z=kM}=u?THNNRx85d75*+&N(TQpvEr$N@SwACuKUYh%+sT%Je*EB7C8*Z|d(UQ{PuZ znc6X3cjYRF{ZlyKIL_yOo(p>^l#e30M3!8t7D$jn?WGbu_^haTr*KhMAQwo{)kLc$ z-2;j%mzq5p^qS?U9fY|E8~>rN?5TMF=x6ACV&woBIFy=5sU*Fq_n00C*9u9k=RWYS zikF5oPIh@8usG*J@dLJN0qbTw2O@BnpQAirm%Y+(T;F{`-rLKM!djV#Gzm;a4z5l z&b$1jPFmoM6ffeZ?WgjR1|a+DXmJe?QweqIr;%Y$Z%kL%X$G1Jewqt1(0XjRBaqkd z9o0Tb-EHmo=SNIp)q8tCRfom#0spRBDHOiT-*i`ad>0**v9lc=xx*9#^8rVG%+m(r zzNkh97#bu(N2AmZ{yz~bGI#QdcK}oUKa8fL!kw-k4k=>PyL=O{N6vjXVrd54R-qB_ z=EV-viZ+6V+)Fe9=yPO>n|LV5&?>-=sfQ=xyQ9HR3XWmKym`d`J+|j?0jwBK*~=+5 zUCL%o!E6(HYb8>c%^)C>Nnnm(0g=l)>xU#n*O(F_xGl_b5fb9>$HI?P36T=gXbtL^ zUANv%`PSvVG1rH)zr%gUr zG{tH!WB<#w`Ac1Q5u*0OY;~4kdDoppJ}oS7tBwa>-(l@oq&)OTlJf^hWLQ|(`A&0$jR2R;n&Wh^7-+gT8LNIycf)A6}+hYOwi=?Cl4dOz=7I&56vQ%6a zi%Yq<6!K;0Bc$JAkF@>V7Z={553AQK|S|^b<||bYfouegmrH z?f=k3oUHfmB+O9(IV>IX%drcGTm;h6dc}uPEnr9eP>pNhLjo3HW-WY3pYYlPF$dahSFa-OmIu)GY-rV>*lo|eDx$J#`DuE;C%mv@R zgHs-rJNe7 zQftU$)S8ZiDjtV)n06&pG0c%JB_LP!7iX33EBLyq_9i(ra7 zu(T=A)$lzW8Hw-hCEKsN%X>LaqtN8NTH?>Ate<@#P>XMR|>xZa0$lVzZ5nl^hu zY4G)Z;&Gli_Hesc+uF_g8EK53Qqs4eUHSS>7uo75o3eX_rumQH95A$eeUm>L0Kw7f zQ#FUM7kBy7k%J8|n%d4h{g{XWqNbk zy4($8(9)t>jH4nJh$5hygle&>w8afEQxQ4QwRoiEMf~9f6k(1oV!-GYHzbRScpq(! zpvWf+THKKB&p%=c%#P^G`7M8cI=w$2;{6GCwYUk%ct2zhrTFi~CLupo;{9=5c$h~> z0N26rBfSKG%iU<-3K@?zB=%h2`-RlAU=P*Z^7OC6t6fClo|+tL zc2fzMNwqN}y)44xamkww(%3iro=6$;vXJP3*rS%uD593LF5mYR6epY+x(vTYh88+A z(x@R(Vl8WJn80YBs#UA;MxFmcYhf(P zsTjYf<}ztFJZ)&7PBy&*fRfg}t;j6KuP(#$$k4*}JxDEyYTu07AKku_g+|VeZr>%M zeTNpEu6^~h!|nSX#YMGm1v0d-eG0WCs(mlioKySs^0(Jn+t(jCFf;e}(*-yHWH*SQUGh_I(#?7IIwdz9+)BIV)b^a?w zeb2$4b%ZJyRqX_0wIMYTlhFC!jP-qEww}{s)OQ&&puWXVM%MSSncTnUP~U+u>wDWO zLpPtLzMaoj-vm+LWxtE8@46Z1THhzBW>Nk7a#gJQLe-FSl~qoq4&Ywz&34~p_|9=M z6*qA!XBB2r4ob>P5D?2o|x~*^pYtim0XJ?Y@_B%`%s!kP7oY?Li_MdUI6@Q zR-Za)9y=y{tws+dgQY!=*{BNccKQmi-n%^l37_UFoBcR56B;ud^GHw8rPpAoYOM5y zaNcX_`f_YngwyrqbnhKIecVmqbbUDshlkVk<$QNX?DQoMsOkE^!V_gQ`YG~&P#&U2 z6j=Ck4tX=sJ^g${VKp|8g68vPimABbomQ?Z;RV4{v9B>DI_Fli@sHebKgwYT$eDFs)od@kayX&wW3{EoV<>p>+Giq7|oW@%BHW$`#(uzMEP?YNOV!x`iP13wLC?kAa61Ev# z?eb;k;xpK0=xc5zw&1d0-$$=$SXRR2Qt>-zeL4JJI0)#Jdx2Ep0TB|W;-sQl?9x;< zZ66>Twcy?3*nr{{sx9rbw*c>y#XI`Nd$2XdaqN0Fl@bP-9sLHGJ#WxfMN;v7oD_$o zIL~4vVJG7}PQrVG;ypejCEyGvPD(&hf>bh<)}a?2$98AGqEE7@E-z-pylh>Pe4xKo+o`=AUwTuXknLD3v5| z8HjHet%1C#o^qh^3vxwD6I~&9b%5o#cNI~v(u$3(t1snt;Z3QFM@4?Ms;+^ks^CfO})6G8I>=)VG z0WeZ6Gm`rsq)?|210lm4?4|=OacDa?d>{PsJ$rr&Ffzd}-(!cC*!+^K9Kn_}@pPb7 z3L~4+u+c^hoI_%jzc+i8%h&!EuJUkSf+g?^*?WOAt9@^&_*IM-t^d$p;FpcWFP9=% ziUaL))`MLdrtNon+vCV8+OFiU%q>8oJc1X?k{tak9)wV7kG#7n;aA|6JhSIb^59Cv zH**rWB`?nNCnSMeZsa6zOJ2O^2_%7AY@7sc$pg1cXWAVDw~#xi>{sBHJaEgsA{pFr z6n#fGmYYQ~xW$fNyw^my2g_yOB=AdTGh!IWD4OtiYh=pBk$fuNPWGlbu?wKe zFIa=i{IVJRvV-`goVK>eU;-Rb2@WQ}xtd^{vDovuJVc+5@VKS)8A}Y6n}%Z+ZL~KE z@4~?JNzmw%9iq>TQZemb5UMZJXH6u1>h$y>F$(9lRQw@+5PiC6^m&gGh(33O=tCRA zl>G|yxg$iMXE_P4m_Xp0@gi_ycfHvuS?%40;@ zlt5?IKLGl!=Pa~+HR!v(CGr~MPnFjI1fXD=bXi{8RC#?+mDim^^7=ZdxE=DU@_OG{ z_-}cx(3qWrHyC27Ls3W9S=&@VjH(GpQU6$mR4o8|YLw zXc-xD=BH8-ZG*--Mj!kjYN8B0t8K=CptYwacErDtDYg41Z%V+gp8J0@z*KvxzNTi6 z$5dInul|FYJrA4K*6f+prA{h70=m0UFqB(tiBtQ1ePvD6@!6|to1stGWp4?6Uz?}` zox-xss86hhg49xdBE#h!2Y@C`5c4}w^+ODrpfaeRn*;^J5&&9=6pCx5;sKPG^@&;o ze^z6H*iHIGb~UDLOc1Y9jfp+m`d=g@f1<4D2;v5J$xoK#!Z)4(L! zgKj+0V=U<#z+P3SkiL;2EqFqke!ybglWTWCX$2#F1|Bli*Y2p_L#*`$anxQnHo?HV zNUSGD+5tuyZL^2<&lc(vfB|XxClnwU56-ktq47Q(=rr_b>Np{#4mlY0R|})f?qIUEy0Ur9UcAJ5x)8;Uw_Oun@nHLNSb!!7sx?{BjKZ(ub45 zFT+Coa!liwWIPM=i|muZFWmv4>@HQG=xxv^&Z_U}=!4Tv!9Y$@D3+6*D#kO>$HodpBz*=$D>TsOfO|m% zed=P;r#)UY(B~xdmk9d!Imtkut(;__&nixeqR(rb97Uf+oE)1z)A8&q^vMm|2eS7X zoxZnPoqu*>JnsZ~gua&-MIVS}*mf#?Ht=JWKG+%K?DiYzqsiNgAf|Qn>8{bIk0pTd z(+LMg_bBcjJyQ1jRK=f%JIeus_>$0wne!tMh&s~&oC&tg1(D

M`d?{K4U`T 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

-bdongKkn0hqp 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%0DKlvgh}4csnymm3e^Isge`Ry1=ROBjitnawmdI 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%0D2h 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 z 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

UyLCRK&?60YU&ClR+8I!d0?6f?x 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�Tbqm$4 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 mH*4YRqmbHwG=`^3DA~$C$kX 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�}~G$qA*1Mrt}-s;~6e-n3Q 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

0O9TR(unsegNX=H(x(F4+%x>zP#F6c<04Lu{ z;nSH{vl-uK%H&As<;Lia@U}<8p=avFYFLHsD4c@YPMa>ohLgC{54B3I^N?1Erge@H&io*d}#F*25NDeC!*%Vn~{Vav_Up$7u~W zEH>a8xWLp;XMtd5s@dAQEGd~JJOB0|4P{V;wO*KM=?}O26#5YMG2nI69?|fYj)?}8 zWjUGx_K;#U#cZbl+Lvdd1)Mtd*`5)3TD1HYp(hU@(304VS9*7BoEr;~@y7kZNr3DH zJrQA`sk~OMQDb}M{Y2_vffC4BK|!fM_Ou6_S$R+dNJg$!{~)dj`8_Ob5mkDfXG$uk z3q>r6&)laWxJU0P#+WS6Bo`ncdj{k}Jt7xP@x5nXWY}~`{O=lhA1B963{rfw92d3} zP6Agodke4YXj-~taFEWy3Tro*F;mtvKJZ)oU#|gDreR*8w<_5a4O3UGQyN0*uwDrD zlDD3d-HVgAN~}pAyibz?QERg-TA~9m0!2XYSz9A*X_h>gGv^S^iyv}v z0jz~~m6{2q4&$jmWvbKgS;EJ7tZFl|354S2#_?MF2pWkNi|qMZn+h6hHhUensXQ0} zYx-bu0S>XFTb0PwMvA}5bSOa{NrB4Xbxb3#?UzgAa-lv*f(B?1i;5zEDQ1#HEsctC zcW7FZAVt&z+s^Hs9}k{Nr7hZN4{vt3l;ZN3k_@+X+j)9}Tv9RLC z(OXdWXOe`wU+aVaESrb?zAhQM9`i%+HK;Wb+NC9vO4Hy{&q=N*<=I-Ia@Bu{U+ob6 z1knJYKtDPJ{_n&A%LaPb+d%sNDT6a-703mf8r+hELvN4GOSbUU7~R}hxw*&m(6n(M zVSRY7WYI|Mq*YtT>U#04!3BB^wmw#(OMb59aGdz7@)pdbUe)uZaO{e_`t(z&XM{A# z2MRqR*Jv_lae4tob4023m)W$6yJ9Cwuk1BlYBMkp8DG?ehf_eqfI(5_x(ydvt46J zzfG&8?kOJGW9Z=uoqTA5corpPPqYu8q60PtKDC&H+W z0nnm>XB}&8bBs;jZ8Y4+kD)r8OVqZcj_)DeV7=kiLx>z4oLn7>ptn+Duj4fnL9qe8 z0A`fnE*Eds%?twdZJ}zZaZ4O;)?$UWZx2noMcAD~9RA%G`0@P3>XB0M2ibl?wEm-S zXphOqa;jmyUqf4`W>-*tyaiHtI*3cWd;yRzwYmoa;0arwZ zW25SIe1U;6D)uE4NW>(W*zWh2wVpq9^7$7{nyPa&9A{W|(WLV(K6lEb^Ze@f{AK4( zIsfAG|Ld{~{pz=6>R>iqG(F$nZ?})BWB2L<{pC~7Z@KJy=bhi;S8w;LpR~g}9OKCx zlIc0OlO(x2xARc;+>R?E$n}xuc7mKiHqPzz%Jz{p?U}wOp$_d(X~+u3K04p84ic~C z4QrHe_vV^N?40td#^|%*!Efk9!!VAxT)Zmxm`xY+kiT_QHG33~$(nQk8l6e&IX?5K zj?ZM}tMLrq<2ZM*-Mb?lAD8A<=FroT!5i7=W^m`r#;S5nbVEbU7h9i9a>prWby^M_ z_QcW5YfpEh`6!BnaCpCh^Ecf^k-^WVu6uW+Hz}X0o?ef^!{?S2(I36~KOB0eaqzP} zsbKy^*ia+@VTE@G%YmmNgI}n>W>6JpLk7~QNva73c~2Ly3g=9SXs`}(Zw7^Paq)Cp zEo+())5)R3u4^=ffhWUIWbpICLw*mVUJ+^xC=ooW(Z|mw@U+!dI7$S~} zwp3~PvpqWuI(Nu=^t1f1^RZ!uc7lUP1`}tz;O#$fj13;4Y1WU=b*z=q zZSyGM##7=2*Zk1!CznaC(+LJ7Cqzb`-)-{T-a_ z_)21>9-|ZY=rPh+RA|ai{QR+(arG7G<+df}>htLA=N0;NmsU`8;$nRkBrc_p?4Ea7 zqT*q7N1z!wVDKC1N}vt#Ij=!%CkGelLwJ9_1R?q zAVWqb+Vv#CeS;#Flu`6oGbx1qKmSiCFL^<3$b&f;l|{gpZQ8pJq2?J9 zl%au_2vLSGQ3;62TUEdyi&jHc2Pm}4Ch&oGD~G4as{Zz)a!USV@L_fS?Fq^m8l)8+ zCawvht*Cp67Dx+J%K8V@PpWR3z1?F%OyYlnG)t7`o;CaDp^8=AN*KQ!nUwria+ONP zm|@*RGG>59HstyPV*eV!J?By>GZL$3Sk;#SmqbIa2wf*3^eBW-Ho&&0uSl}(fMclIyu8bvkxKd8 z6JAZH9?2ZtIpoe^s>?|_&aX`3)v@dZGKDtC)$VEdoy;%CKVd(FkM>o#iV2SPa6lw} z%8*BorQs#N;N<_Z&rwj~=Gq(mhuZs9p!%2Ed&%+tpuO8)`Q+`bU2pBZX-THN z@1psly}9SBWJ;y;Rq+3lB-$bd)v>D@JN`#hlsd@CTRLA=v$3T(+&*Iv9(~@zxziw> zQF^U0c5F}Il;-q}ZL&uMYy3*NRw@l&@SO^&Jhh%wmzPH3e=rs3%#{-m+7jCz(<vM0|}n2UuNc7bbNUFaTXhSx~4}xmA=OTd+tt zXun){9UTkd=?Xeo_Xo;_#MMkOk=Vo{KQ;z4#Vt}2aJYNVgWFxCag(6*bwYO}e#us8 zP~|0pbz2jigdjnG4XEUG01A+nZad`NLy|ho-7*?U$_`}LvtCFy41Td5tM*VLGB_cH zRQHQWNbkrg_V8~OwsK&Dt&vUn;n>iA(5e}{jAbw(!QGM?G0)Vn)Kl=A`%EZBvhzB1 z|CzX8vmaW`UNou~4(SWZ$lxtnU;yYO08M^Xi*eGy*OyjVo+Wj9AQov_GU~$hjwn;k zleK3tPR}f2=V{{eV{@b$NQ6FvFP`{sT~TH4$TNw;AfXJ)t2hDa%Z(E2T2@WJ^G1l5%bq3Q#q592O+oIYU} zR&~4}|53R-aS)KIb)o~@hzY<%OrY4Ijd%U2aI2GSx;a)2DC8-W8l40UFnamz4Eg}N zR;$GO5_(n!ESEMlQ+kF?`q9x7#J-vcgJr^-VM^*@URVOS7gSL01#=f(#J#k^_0?hg zjII#-!k%qJp#c*efxi<8s;;Zm$MtuF=ysI+aBQ)fJf~#RuuPYv|0b=@IZ&tUD_fXe zhNny3u)vX342IpD!sV2z$xhy!O?Da$qFiSwY`E7UZ|#w6O(xl|NH&VQ?_#8k#HQDA z&w7(-y5d7j95|_s1f2Uw$=)^4A7Wwmd<(1K9Dk2brCzoo$nI+rAC#*$#2t{qF}*Hb zQcZDO`e2l8tr``5y#@EVmoxCvoGEU<9HU-zS^F9IcT2mY2(|}RMEg?FnI%X(2jCs) zmdhRJ@x_ajG`7?p7c5x9*LME*Fk{)rO8)TUe^G=#b7dhMF|mC%?gyi9W#Mm=Bu*0q z*HL#`N+*ioDb`wHHKa=>P`~Sz*xgGlOIkiK@9yH=06g6i+->6{w*?zA363Q}TWxt> z%hXKC38MT97O2t%dIj8^-KX*M0A1mUq0HyNKS3OwH6mUjUk!?A+iLl`0NqO119Vl8 zF1ZOKLr`bXv#B1xy9h!{{OBi)#rC_08U3-{eRq|SUmJ-dvAcaf{8;-qJxp3O&!Eu7 z!95tB$Mi!V?aLpi(T8X_*50HdAd$m!NksLj3j7Yc`kGyR8Up`jeG@*aK2?z}S@ewh z@oo(}5t_QNjd$z94i`5sCvHI|Zi0(joD;Vs6BluDT{&^^ z(j{$F2rzY)%HhWpCj#a?i@RZ*#cgT1$e;N03A_(W4Rq^CJ41j+_th|3sb#`%}`#xt@fj>VM zt<$6PzRaB6(*Li4P=ZU5%sesICP0J|%|-p@AXD>{P;wbhCzOcI`*CV8w z!c8c-L(u84p9v*@)K?(PB!2V(iJb%O4sk8KLiNZ}ZEk!&)=~&$SL8`v!Y_U>o5rF_ zFJYx)DGh0>InnF<3ojjyxhM7mUdLmLh#{xfxsEs6tUwr((!)*I2R_5yx|)e?!Uk8tME&_u37e5^qK+5*^!si` zHbj6jNjf&U@vbRRf3|fg1QIrkCmrWzVv|PLh$bv?c&nRWReQzt z=vOBdjJWq`&8nf~y6xh58x!@Pel?vuSROU`7^;us^+8<{q*PZ{kdnE@ek4nm-1_9$ zUSieBpy6)X53DQ=wG)^wnJk({h;w~@V}OVo14KAMHSz92T!9OAwo}obLL9~AB_Bk9 zRCj$vJ9pHd+s#o516dNaBw#~<%{)Ybb9jmZqdcKNn4}1|#!&~IBBr5g6FenN^H8=@ zpfG7#&1R#Tl@Qg_He?jD-{uk(0z}D8Af01~XcadpM6$h}-LLgyf4fT6X5)g5N=p~e zw2y!;&=Uve=?Y*slI|@~E*lL-w(@Gh9S&3bq(*7`*$9dC3yv8u$)kJ-8w5!ljKJzw3GDp(4%Og_JL$cH>kvI7xymJ&fsDNPUy^3E-<$`n$@i^g9L z?80ASY+8euGJs{NgMA0f3kQ2Wux}4wzbAnGzJDI}`%(qA|0aVA8$sa8!OkKU3E70m zytgB#1@3$gzIaP$1=%J`9aRkwcQeA_W)znRQ9-EiQbHN=2qVWuU z29>#eb*t!q{y?rwbcTGnLA?9Leh`wA%z1H=IWJB!=OrtdbJH#jhMxoel-{KDix z0%q^pj{Cn-TgC<;Gqh|7W`@?VhhZPT7ZTzpJ+Tx$9{lZ<`yI+|=faR|w*1Cf<1W0V(GsqSTuF`AtlQMrklwSZS+QpaSW z%yiMdz)?#UB)Raw9+^UAWD1T#Z+;VvS!Atg8jQ4jnwfzNBBh9V|$3#BXh#A7bvo^qRTn z?~gL~gr2u!D`dmO3=tqH9*BVCoyrs}nP39}W|#e>R8!&yOPDL3YdJ`o_x(n+%{VT7 zqIX?aZ6B`amJRsub)OB9eAn;(8g2TdK*$rN6{ zrs2rE6A|Drcf-QX)hOm~Ev(#tJ&o6{4Q*Yj%Z63&h{Lr;=^6bpw)yXUR6@?=Te5kf zMaJ<0w5AGdel~)&`Y7J!vd*roa94I`9T*8@#DhT<6q{e3E?M&sGLJWjWwlf~zvg_H zpjYXP`2flQvczZlfAoZ|-ZNoBi&lD6${GFj>T0p(C2ss=m=JX=B}5o8rVT@0XWyo2 z`lHrjNUU4!5#6rG1&^9o$fi0BKM!gW6ECzUePT~$dp+e`nX|B5>kl658GSLknI#sVFJRD@K1x`$ zPjqx&KQ`iLf~AhM-2Zj8lqF8o9)+&awNK_+StUvauRpxi>8+c{C_!nQo^d8PN~TlA zT$rY8ewj>3Oi}h8ghd<5%j7sr=ddfh_H&gP!!mF7F7tzR8k99)n#_92{P>{z!)wuB!zd{dpO6mgfU1gK#Ay<&$VSHp zTm%;KB3LHG2i8egF5^J{dMW9fsB%5!4P}C+f=KMVb!*nmkISsK<*h^hC6{Pd zT@)K?6o?=6)d3=J)~9LdywR~4!%IiU&Kh2U#uHB=svfrw>5}7u+Hv}mkT;NMlCd>9 z)-b$cbhKf3kvvv53@_zzRsL`}rQ_6TqV?wFN{v7^Cmu~!)x3Jlb8)_bhLLRL{aO> zjGedQE9%X9IrXV|T-~YwPR3B}y_6^U4#y^5$2-)+xiASkZMMrY1^fNUaO6$;24#%c#ZH#?69DTmAau?mgL`QGGheDrqS-K?FQxC1(K%?>F zB%=HfqP%RWPCBZ}aAlXG*pz#g44P`%2$kNZA~^{J*(_4s#fe2J{Hr3ve`|>KIzG=R zN;U>V$$>j$yWLJYg9Cdx_JG?%Ek6v$TDP(f3o`S|!_gPQm21EVYw}$h6VYdJteGx( z_WrTpcSDAv!*cS|z8b_1!dC`^=PhV_`jS+&Lq#1BSL8z68#*0yNdASNQA*x|HAZx6 zq_WGKb=|cZd#0GG;2bffyhOd3c6(RPA|Cm?&y?0MTPKeuFoCZNhW~*3rLYy%FkC;# z?%!QvOhxS1D+*<~Q*4S2EU&1KSB$?StTb)@o1&#=mV5WX$_y!Z1&80d(yh1RDh%(V zuu^GG+qduMUA=?FgKDqibc=WO{=haSo)0{twfLZJ=}Y5vjHhnv9KUjfH|yQFGJgP@ zsTZV1%P3mKRGRfg#sLW&ht-Xa)ox{AZw1b|?f_t{8s3%Q8+$vvT0|;Skkyl!lO+-Q zE?qM8K1aR``wfDunVC=2f7jMwnzS6qox()yZt1@vBXyjx0^+rAV(%e;9*gzZJ5f{r8ldAn_!$hH9LUX@(Z`udU-9)IPc&t+0Wf8^zr^UleH=`hr}9mYL{pKdr9Z}Q7Xm7u^t}=5(FZgQ~3CHo3!y> z30sZTAsvh=!l%PjFT*tb;oLNR>5pJ`nGpu)?@@)BFlELUWAr^W65ALW`2Yrr=I-So z(nb27C+9D^L5#+&BvE6{d)~EoDRt0n$51jYH2TB;f@BXo&EkEQ0pALAX9L}uFy8B| znQyOh&6M0C_nq6!yDgP~@H#&pS)CX5{I_U3V|daix$d;XDWfQ)L1&32a19?&KD9X9 z{pP9a(Z+b~+QyoD5=B7&&z3k>Oh^>i5+kCvo4I$rA!UYe&sv#rgT6W zQyMTxP)&a22R6LC*~8BxG#G^$1{Mk73aq2N4O~dAv503ln(uK}DII(alN(jFN+pW{}@YyT|6W9GrW@o-6=x$6_nXfM&Pq*<-AO z|CoV210MR#?!Rozy^rnFl%oADr#PfK>M0d+oLZfFwvj^EGwGW%aZ?YmyGa3SW)}_6 zeSNc{CBh^jzmaOm#^UmRTa$Ggy4s#4X5d zL1D{Tn7N*br*BmEua)|p#6`j&3z1Tu60@|T2}`6nSEN$K7iSPx(^PSmuU6x}<&jiT zW;}BGPt9ik^PQGz-TAhE>t;VTq}q)0mrkBC>HEiDbnf@LbHKafqC$V>ds8M+%zn?e zu1!AKsA@QD_ze~oHl~^B!_|+$vy6Fks74S?+3hPR|IwBzzx_&;kIB`ce(Xd)r})+0 z9e949xy=>-R_nTC@fp^N&@`MvEi`BRa_ykSRy8#0hC+3hOfm*A89T%zA4UQ*k>;V9 zRE>}>To@SOMVJr|Gki+FXc7YKyGrk9YZR8p!DRAg)0x^5c4t*enFzU9SbNtlCo|!1DJl-AsPx{^k6n6WWecIo?c>I3dUgzH^+>h4616T?w51pgt+y%^>4mBS& zvHo{{@BE9uU%ifu`R#8{P`=-OR6b-ioV@ejf8{=L2KMY|{6%%XO2`ud?)qP$UFOs|Cq~T8|N+@PfpF;ZPnPMn1cQ^Omkp z-QY6=SDh%&_I2_m%F$pIxr>2_+w$}r435%b-uoO;X%h>mx|jk(zA z_~h4!)s~bog3{}}y^XinST;~U=<9VZwy#rlPtxLJ*|Gcaaa$gZS-Az16iEV9zSr*`B_?4 zy&Hfly$MdZix;;LUAvmadb;{K*0ZUjCcI=%Nt+f_iH%cw~o7ZtNm1kO%-|`dl<~8ln zWE&{zfr&MH2By?N%_qTZVMUF$qCn1D)u9v*qkDvB)Xvw!W=Ta)rt% zMPp)Tos#V~jqJ+DC1~|@Tie~eQEF>90%wpbYz6;rXw624If(M zbv!?kWghpCX~MSYsP*+!UyzigujsR>S@09Fm@Gsvh9%O;K%+Kl8H`dHWoTA|vrFHw zx^;p=fG`Z#^KJu2adGn4*g|EbZ_26)M&(vWNZZ01;9g~*ZbE)zHB6w*P`1{50JNl2^rD>TJv9W;4-?+oMaT_n5am>XO=ECH@f~Ge`f-^zCT9IF zdQS-y2E1dQxxkCp`!S3&wIZ4je883FmQU74oFo2L!5PR$Fgq*dOl;iydBy!D-_NrU z44v%>%d#gIMDe@^6*;(?!{J`OSRQBClGh>c{KBdAgZiVN!>RgBI9=ZI!(%Qcge5DxmfmxbkR_M*)uORUW%_rhiq%`gFE z6EF4N9ltOx-2UMKUVCv+Qx;M-sI(O-NY#?6;9HRCyDa!_(sxDBAr%e`ufjp$RRV<4 zRk{r?uhQ*z8MPUK^$toP3!|my2QGXX6eSkThFoTmb-UZCs9D+a^?F3IYu~V)08wzt-I1xi@jB0tUZo%jB9i-PfLxE zF1b;t2s(=O?B;Awaj+zRGhBG;Ei4NE|8$u@kzq|kCvcxdg+FtRa2uYuhR<3)*SgQA zCuBG>{d)V@JT~pZ6W2};)Vi_^#%mRN1gS7$isS7^uo*Drmg1` zRMAOi6_oKCDL|ojRYO7E`1+`g&g2=;jr<}~ z601f+J!iWgD$I=7@Wdx3gk!gs7zM#Lg#=P`l!(HVNQkh2rXZk+0G*udC=o{WHn*fK zc$;5R6}&AhspAdSQ3Ve zG)?OV5woyjcnrP`DoNSQwc1kkit3t#iY{h0-s|+f#NPSznRA-TyrOZOT3=YcNWrj_ zdG?%JF6$94&S|2~oh9dekr~pEp@>qjTL5+{Z(1H=w%>#(fL6Wd-$|Dnh9h;Ya{G+*8IR5{oIsQZjJGUzi?HBMa1=JBx zOMr1Nf1*wq<`u)iykZy_ z{wR!p83`$`Mvh3iO#_o|H#;3rK96t3i^PpZivEp7YC!Ok86nUSgAT6X)Fs9q>Rbrg z8D3P%67r~)W{W_lpaDoy$|poO9x(h_FxOIyvV#hvM6ou0AZ@6iuta*EufC&UN6(;) zIA35!KdkN&1ls$68{IUgK-1Vm0!~0F%4BVd-6S9>*2&uNVd6HaK?0nD#h0~(?iItA z2~+jF*BJ;7Y+B~PW_EU9LwW+6xp&)CP*{+ghgaX?2%ODVtoS_iqQn}x4h#{kwLXAkWaBX++kmCJ}1#~U73_F zxt0NI0_A6?sO2mDwTN+gTUcJmThCnnD%aF-Xl;D-hP|e8bzIL>uKwI}Di<&AHI++V z?lqN5VE(73a!JlMRwYUsacrex>+wyzU=hhwzHPF)n@ww7KoE*lZk7F0=evX=R%U1O z41dnf=zjci&FEVU6DDl-zY#RKvlros|A)4BfseDO{{NFUDS;NAEjCzgl0pip+)^!= z&;lDs;n}jWQ7RO?NgDzW(^<)$TL*IdkUBnKNf*&b-NNepmGpp=svRGq~S#2WOXx zCUs%JXi@VML?!%)aBRN9Z!;6iQadA+XqY9!u?58Nh880%TEtmu-35f&tW^+^YaT@8 z8VnH$1(42JQGPxrN{We+8Y133)<=Hon`i`thJ$FZHfiExUi9nV<_HX1tlj%65N@@c zc9bHg{!1$i#2K0?7n>`Cvy~oA8;kk8Mzw&~lGw2AWi;LJge6WKH$AaHqlazI*_eb2 z=3qH8Y$xqiyKPX2jWdXZ7scxqtCOMfLJjK`zXs_AYd=$crB$;FOS;?=FI+H1qEoFr z;VBZGA-C{1vFq#n z<`VX6%335hX{pb$r?ISAzN(xL!Vm?~CLC^sjss+p00-EVgZ-X!%4+qQQdXr;yv%I^ zl{KZ#=Xr_fpm=@X>`(crq|rrc9EYqXtV*y?ALn7VF+4BLTd#@V(|&-}_I(rY+zR(T zKh2X8U8`@RH>M}PW1S+C-gkhQ#>58RkmA5h)0kC$XW!t~BiPGX?azByiN`*o{oQeo z`iW1ZCXAV$c+iMUwhMUz@MXXBacn*g{>GOJ+iAKlmh8$HfQgaQ6H6@vAu5e0PEt*! z(-ZS^flG3MgNg!|<^l)j0z221#p^e<-Ky@(jbY7RHb#v;yWH%iKF7~^-PJG^i8@IH zF~dnB%wkRwVO_FB;svFM3o5C^4IBL;YvXB>H%!bx$h!F!=&bA8+SmlL9p}^H`Br7R zYJtpEOZU5Kiv*w#F~15TL6)Ci1&~3On_rn$HN|${&ZUpc9)%e;NBrV|i%pB`Fz72^+-V&a$>vsZZHjRVDs5c_jTf4!lTL_-q0?$)ibGKqEO=c~NP7j2!XS!kC^xbg0UiP!zLnWVaBzE}VXcXWbR z5CA)yo>*jIsS%tpxhsUTwYR7z8hb1JnNPwRF$$=OBY7E6-W8dpmPAf%_J(&wTAVv7 zcQbBy+iv`yjJo5}GpqQSrrB|EBx-S2-w>&Fj_V^;&e0W#;6Oy*VEh6`6HDxd+G3$` zjGRa>igA>LGIdW!NwW;G+WEY-xM1Gh){g<^8TDznEFm^8;Ew3a0FmXu$=5(|L%`V^x1LGuhp#GC}n zJo9>_DfL@5%AdJ*pcZO=P4(Nn&S`I8j5*OWCeRViF_giy!xK{@ETx{h zeMFN^JaJS*YJ#`Jtg|Ur`UGM*hrRZtl+%)3wuQsF<>`%y6(SP_sYZetQj>GjjY2iu zxX|2uqfpH^E;KjcuuoM6oNYfz-_5h+BKQ)hD){L*sdfu{EsLNV`E6_`3Z$oHrMs5poX71YojWeB@$vKq9Y3JxW(6* z)s0Gx{dZ7{jwqX94U_;m%NqUI(|EJ>c-hlf=iSrOz{{_Vqh4>|RFuqV^y!`X)P#;n z<1cxqqV129lH+*WgpFlgtoYcE?KH_lnTbq+h!L`(G40xd4UHoOl0=JG=~|Adur_u! zG@6@6akHASU^A!SN?*W!oDNYT{<$q)iExQ69Pjj3y*=1p`S|bLpYQ$ZQ9t!L?4!L1 z!8TShv(0(LTH-ykQ6YO0g2fQ;nf~bwE3lo4880qz>^9wd;GNEG-gH`8jyaM0*Rfve zFMa>cj_IB6dzWzuo$Ytv@H?*+IHh-H=by7@$^3IZ8PWK0G4tjV1CZ^Y+wb#}Q*|0A z+HbfuH5eC%Pp}rrXTf&c(V6UDxL6Ye58`OSw$W1p#+wqr@ECZ6Fr-n(D^C0-e-A=Y z_bFrt!=P;=KZIe>@S>ttBBD46Kbkr0fE1N!siHqWb>yvGG7`G1T4pVFsA=f`p{5pE zq?)Yh)MOVGsY&)evFYvnw?+T{HeeKyylII7OL+sxiRYQma2Qam z7v`J1jI)HN2GVCmIULv@>pXQk2adxvz`WH~Uj1Xd*2$>kmi0yC9u8R8;9px~Qf-cd?RY zhDWTFXII16`dh3(EG!z(h4O;0QJ5WEBqCSnN$biEnHI~P61E7$Jz5g0U+Z<=$Pwkt zUIiS-skEu|{if3Qn#TOA2y`Cr7yvrx4@!0kI_7jp!268f$C5`8n1$h7?cRH;(FSNUSka zODE<`En#RsK8lA-HpXXeubWhV$@t#3r??dqOJ2Pp-;vpyZBDo^6U)~9JyU>bw!1&Ahz3w+S^U20e5RASA z0j|$ZfFABFQQhyj5co7MlsH1P76+gA{wu~EKj9%2O2|wFP=F`&eieb+nzg&G)}w`e<D+2AgL% z9%zB!(9MCmV}~hQ&q*?7Q+A9)Uj8-_`W5Ws7AFc37}}Q=0->S>@$wQdh=~x+j~Anm zaO^JkQ$p?_cXWPhc?mxVHzDa2Xl|#dTgx31h!cdZ9e}X44q%M|cBiA5TtCX1ye*7_@Twn5(0xl z3N?|bb)x7Nhf_z=flx4AjRR>82kTF_rK!~s;ER@wN5Csw4{>ahaEd^Opak%Oelm(# zZ@2GV)g>AmNC6dAmv*KVfRe(A;xG?Om^-h9(!|=pRH<*OtcU-cNo8IX{ZK(*U-yoM z&+K4wOsa`p`0L#=HhE0VjV%Ad*^qbbJmFX9={FK|S=ikvC7EBp8cQb!sj8EG6{j>b zXfXfn!qDkexX!LM2BvKj92`q=jvK0bodf7_aD5|cMaT`wD>-7q7gc)lWIGDh0>AMh zgS|1#YGOU$!R2f~N^r9=)ipr1xjp>ce7Nj#cbm1(mPJ^#(-(=tiqYIAkBS##Zjnsp zQnKbjwWZeEfjDQI@W}%el($W<G3KIF?e#^0H0%l8=SzUDzh%wz*Zl%mI;VSSks} zO`jmZNtg~{4w=LD#m9lO++u3GeM|Zh|sY%zP+yTHhEx7QxwdY(8)sM^jfyH1Yg-t z2<3{t1@mARUuhM0iP+TFH+)zmdd~#K(;M_XooW9xW(yAJ_oSM#qtfgE3YEOwiX_rk zCoHs_Hooyt)~BZ>$MN#4-3CVIfZdsI8!qq9e6~<%0iVCQEQimw_%3kCYIjFmP6C&w zB`-OYQ>cxHGC1i2&Ziz)C2wsSO{D1vh>u?6zR z96d~DS$a13<$gs^>a^^rKPMiGm-dDDO^xd?%uE{JxXsr8M{JAf?cKQon0v$QB4jJ~ z_!e9#!C_xlA9iW($efv<|G~H0xDyGVI46g4uluLQJ{;t+(lxQpH6azdpr%n6(6jcC zzlV0DWe))aZsW3XzQt(8E| zEj4e>Ee&zbJ+;U^E9VAs&3n{X1ogoBKN@H?%jO{|a?dJqFDY`bD026PZo$R>Ny6UiLF{7{ZNJtvY=g}&F=FY#OO zYvDKcdPXtKLVk|@4fVP=?hT#gg~M?EKZkLUQ{Z>~726A_H2hR~av@RxRa47t<*qE1YNQz>W|;^9P)YHcC|tVGR^}Nh#1Eb z+VD`Vk|iF?99)2D5$kBLTlx!@9d%4i7!vp-c~183E}L-jab+iX-MY5`w>+WuwED&g zy6x#L0Z}-7JEXUQuTS=y5)p_LZDPs@lVyAPt~tftOx%_s8Vg8 zoV?_O?Zm(DE&K|6BgSifUaCiVQWMzWI70JE`z4*5u9ljmbj!)!J&i{a*5hl#w0%}* z-_<_agKjRM(=89I?d(61qbI*UrDm0P_o~#ep471UtI`!U8+wD14L!ji?`{NfnVHap z%u<{s+dq@yifJ7JenTpVQ|)q(nEbQ7LOUxMJY0E9UjclQBn>*fZ~l02kCM>y3Zf8! z($z*Xbs(JU^x(T5`HY9#8>=h07FPYK{8gH4pZFec zN5#fBB2ss+A|rP`(9E=b%*8}26a{u~4Ws%CQ4vLL_qvl>_*gknjFEF!*O2^}xMJr! zAbBS7@zfDHBzyD!4rvR~sd4*z_mu4qlD+w_C@jSBaVpT^_}?K|YUEP1RIll&7Ge0? z3pBfXT_qqU{Vy(&aw)r-H8TsodbC_e0TDLVtNWOTp9y1GawxW;!t3_J=zgMCgwfl> z=!nd3xLj zD%n@1P;H;lJ6%N^k}Xu#SQ1@x_rz_Ro0b}?*bP>B4!!L$WA`D@)h`QICqO3sO zUp_b@n?~3CmhklL!zrc+=S0jw6fHb(z?7bIuBKXkO1}zql@6*jp*WmbK5B3FZH_q zg|&wC7AXw`|7LuJTAm_!hgyc(%;3oEt}wc&mREKdo(-x6{<=`LbXhH2J)I}t9DJ~* z;QdEo++1TX;&q7;0L$twcu{fU&)OU{a7 zau9otc9tbt>pC2n_VW>c=9_h6vzdMJ@;*Dhb$e&OENy zvHcWMV@^d<5lYK_*t5u14(>t$jS&mhIYZNDoC*h#)g-2AXI@M@LuOt~QY3<#{%lr$ z9O7@{Rjd^do&FArjp}K5P$HDBth*bhapbk7v?#-ZKlgs@`qfI!Di87NM%_2p{nJ&G z6XzV$ds-rX%*M%yDaZ7kmS{XCz*YS>xQ&yOQ^xhNh#eQOupQTb8WD(2?_^s$*|WsH7Mc(3AR#&B zCh*4j$S!e|S3Q6qM`UW(snr?@Psoq#rjp#7|9c{ldc*;}2R3xRe&TOVsd?19`_a^h zM^YocwQ5U6&6B<9k|%r8gBrcN--?x@sm_+p*^BMCY~>HGk@UJc^C?N=9TcZOdv!_T zs{-PQx3iT)=nOgnQe13-nL%Tp)5=t~XNlf6@62%H%Ug!6J?3+5gULpLuuQFL23dP3 zJkDyiUAxdVTGvA3t{Kt*sP*Y9#0?Vf1^ch(L94^*5)BV0s=LLY{MPeyVhxj~I<=PX zK!S#7yHB$j@B?cBt=B}PTHEbNq@z0k;kAE=Nbd^Qql;}R`T(#YitAT9%#}u?(`a|@ z@rKQf0)-Ke)buQ(`%4{m=|#|W*g|7*_5AR=NMH6X#sVMmb3Z@l>&-7)S|EsxBlT!o8SmnjjZ|X>YZR`6>eAW zlur7~TBV~a-HH;HVSabxwHK=4_Ny)FHsaRV9;H{l<%Ya4J?-uZ{gwxRB;v|dKCR0} z;#Yp*K>7Rdhqzc~XK+o_eYwz9_@0VL{H-{s--2ExNM#8Il@$rwU@%Zum0%=ZFetu+ zuPJ6!scDS*(Msph-7C;FgjBA$X|JeD7QVpCO~5OgN@w}0vZ$YA=zS4ewCG_t-w{uK ziP3{fkn}7w>etK}?Oz<+M2qXMKU^ltysj^(D^q2M`{ncTTcXPtvRW#07KVy5EJfM& zq9l>1jRk5|3v!wkt=O$KYSr*kIn^LKawM-RXq1cQlv~;mYp0sW+PVi)`F0g?}FHkDngv&FDjrqu>T44jL!~EZ}y$zl3A{6{1sw$U-8wv%0 z-R9#i0Tz_fg6smy`9x{2IeE+xfLPq|{$2)KaZrVJ7K}W^G&kVW%po~ReMUvSN)UDr zO#P4Y)<2<##=TQnz0wD~D&BbtEm23iPA{o{BDdwxHbxWswO5=-yl%cHr)-F5OGGs_ zCNS7Y=mz$uMr3qa>*{1H1|3rqVuUiCtQwJ=yL|+6gHi*_?_8$dNMmBuy`m8Db<=`` zgPfPn>gLidPv>BXk8i1Jv)9Y(3@a}OebIiJ=Z;XJ;;(^pLSO9Scdg99SB?w|cbr2{ zrL8HACoVwshrXL?!*@ZXDa=-GZkLk88SMxonjxiZl`mmMQ^dmL=8XlDco z;WR&WKnE{dm!bGr9!q_#Im7d&-&_%VxojJog{zlyY@?Z(b$RQ-*zCuLItFWQJ#Ei& zaj2)H6-!dzT#>CjpUN`5YIfkt<-K_-T-gk?&c2Y>RW1nhu=qF14aHF!EJWofDUW=w`)a1u^nA^&Io_OXsPf@i zO9XGE$dvga1;D&I_^O|4#q1)V<8&*hbs=z+c%O^%a~8rAhqe1jh65$A(oWlcN%? z(RQbFiU$9uKpOGq|fefb06>R!bCDu@~32=?*8or`flYkV)NKqL< zO(kbaz=%51RGA%w8qjKjHBreaN=^pNc5IaC?RK-`6q;hWm05 z!g7F?-zLLU`CC|0lGn}&5$&WSMy}+>RQVpY_)`m+H_zoM{Rw=D%7Sjf_wLVIcrp=P@^)N3PFCql2HUN8PFNpB;wp1blIUQ zKyFm0czSe-=c?I`(JmpTq|H>)>fhj(w{6aLVOjcbcsM1OK2@DA3`pppWCzHe+uoL! zeHVj^4I6C*6YT)FzIwZbm-m&rrd!i!k`P9L);u9gf7bLI+?w}Er$?@GO*gdBbff!+ zhHIcfJ;D(ascRZA_^1c#*oxD@z#7mrAlMXFe36+-wkG!k!??ecXCp$+f z8bfUy5nHvhH~F|Z)XOW+I!fDc?}ZmlKmWe-+b(J4g3+ZTG$Cwc-|ktqogWMBzfR{w zD+gWge@pK@Uz{EFIO^%rZT_fd^e}g7!qxUTH%s}*Zf%&qn^2cLx^e8&$*TvCeSY`X z+8$1SAN*6I-jIG&*HG30alG{RY{c0U(Eg}DWxA}x2a@~{&Mc~fb0n`}Z5{4t{NvM{ zHzfJ(?@zH<>n8eB-IVM1|BB?-d%Vu3CvA5E+Dr~=6oV$T7lAf+x|WUk(U|(EK|2D_ z{_|+$ZmQ&BgAMvMn#etGge{wQitX{40WIDreWew9oO&Kj_VSL-Rz7+uVo9IKKbPIt z3V;E!qu%glZr}S= zq-SYV{^c(mLRP5NZ5{@@v3sUITA@(|;(Pe=K%Q9F2AsjR;k@2_G($wT3vcX!Tzdf| zJ&tix%zbS2vjxJOZE~Q6{UkEUR@@lJ^>)Y$#|?J43&&zx zf(b#wKf>>{7Jklb=4W!0pHpl7^`}av1Aa`rCMKf*IJ3%6Tvp?+mpa_m3?Eob+``87#DQN&e1bg~M>=y|0L}x|4nNuWSii>R5B+T~>-)b*A&&*zkEVUhE2y?J z*k=aBl{Fy>I(sn5*4J+bP~Ls5b-0K?4e`gU$3F2_KnnqjY`(oKygkMh9VV?{HFhM# zPx>{csA~^4qg%_hq%)>x6OQZk?WDjyJ%z0=tEOHfmv&Kw*F7V}^5^UPX!)Z7#ga$E z(lLUQDyYB-6%8Z2NUWOm&Nwe}R%2ec7~`l}Yaj^|vM3`F!izLaQJN0i$=HRAI^U&cifQOi3e=H)@|q=bU%X&BA3M#M{Pt3Xl-ik{Dq$JzL5+Qpnd}RD z;Cmr=Xh(0Pr=iLN_xSuFC2hNn%?9%}y_>y|P8{7w431%=^)?0PTT3tW6C*4%e{V*E zo{@_zr|tnZaRvQJqBqV!n1npKmN4ctr2|h@`hs->4=!Th(IF1J8|-?nI!Is&{Q05i z>A2kW&X^seK>+xJIi}CIwfWwWR3lrl9Qc0G`VYs9v%Bg@bx-Tx(kFf z{!;58F*Yj(Xb>{aLI~aY$6SpeWI)scqY{J;vKyQ!Jo39`!u8>GgX{A)e`hFtq7l6} zyLw&cz-BYe(pg8sdaT}*d%DBN${|G?r%#~%G08)X0M}*ce%3PhT~3ZI#K)sdM^!91)SA_{$sG$l@a<Rg?*h=P$p853z*m zx5R7c8f*$xGLlQYmfy1BZ^jRgadqL~crWnaa7Tu5EDm*tAHo_H1T~BD@^8Vk<3Vc( z2t3MKT299|csH!$0c24G-MfN#gm}Bc%Al7wXHl^a#sW&=now>p9?^)tLHB2MOqP9b zY=4OLs*F(X!kMi+ayqPvvpg;0S2pu=~5Tze=9{Tfw;Gf}GZt;(d02< zOtoe!uccrKqEnTQ^fUC$38K&OKE}Z7P>saq<-fm39?jX;IVf9s9A!CqRNYHOCXlg9 z=VmsmRrT=xshUG=>Lw}OWLg7oFR5;6J(+xM*qvrGgvgTCPYZwTmh0IIDgO}mlXCd> zy04eAN;itsFG>|0_$-q#SyrfM4&U6^)6lifA-=~71o7XZAf@SbXzROPJRSMgNN#Uq(*BqiW~j)6IqbzJV) zHC(SsW%EZ2>=XW~RaO4jH}bh%)_JdIX@};Mo#za*_3n`EL#NLrd`3_egA^A0 zgg=&hLT;ZRj%vFGDLqbm#4)wWXdIL+U)J3cpfm+Z(9`szljuCYQ0I?&M@#KtpAZLb z=kiuh@#U>vy71D6Sud}W45icaoYAMr+*86(Y=Ze6Pn=n6314E}ofyQct!)jt^}5%( z=Y~mk>~pb@`SQ{qi8%G5VY!T`*JO@QMd$fuJAD1yTV@P-vD*3tMN+YU)FRt^# z8dubYn_ma9kftUGX&rn8=&_pHvDj52i&+$rt&E*7=5fry6`o_v zulRY!%p!Y77VLFjuHzxy{MgMNtG1ZqLcNc1W?wW=_6Y&^f%`qWHZXC)gdw~x-Tn#s zA8$NAef`>Z|?<6?+$ESX#D#l>vYQ`)x84fji`%zQFe6GeY@$D%Wz zCWUuLkv>f<*UFAhaWGB3(QBFX!sq@6ounQ}iFN64frO+p0#Nul};o%jYW63J?R;(!R^8ef#n-fWFMlQ~C1GW^gr8 z4QWvvGx{t+iGK!u%{H^_iyXqYuwb&4(wQ4S{7OkGB_sf-3Ws2ju1SCN?ZQTc2@NTN z6eYEjNLygkD7l)ZFGMMD6kbIF`307x!!Mn;nju*{g5UbPiU8~HTIaaIuwwn)ObETZ z*enZKH}@MCX8LpNI42%6v<1HwS`~a*Xl($z|FqDm;P{ScT|)&T|DQt~#JORmR%)3j zga~rAOpwoF0w``t3;qw?l4du1&`9S1an1q8a7Zp_=c|(i5iQ8rVOk`LMVf6(U(6P+gfi8TOC~O#QOJ zl+T6NXSOHa+V-ShUSe98htaxZv#p%ZaCM0mRLH%ig?T&i`%!(+xCG ziBugFnqI&U~PhtEY(x7cnDQh{#8Qhu|I@Yj0GV~n!% zo$_xS%t@Qv?iS~og2d^LJcM`1W6&tUf}Ta=516Lvn;LO8|DUu0AU`nH+4uTz3-X3) zUw%E4dM>L_Wo%J*z};=7Bw|vo9_rxe3>w8o?(sjEec%1@;tAuegCg{&>Yap*kSXS$ zq95#AcDKnU0@d)+j6+@DqHm&gRTV=Ud5mA3&>4hoDFhI5FaQ%9^zv8zlU~>TKon1% z&n3xQtPSyGy`Si{vx`3_3M@8M7~-^NYD)~DqhM&0p@dsEz^e4c?`ReVCpc({;L@Lt z$V^q(ilg!AzmPB^OeLt*ji`UMZEITBQ6{GjI4qXBk{78qZ;y|8zV%qYejCSL-XFVl;CMhZ zIh+E1Ey$$KsDG{Pm3Zp2{qg!I=2T?9D(6^M;s>DN9C3*5V>)a2=$F9ZhhCk{te^kcb{i(LyWhY5B{2Hjd>lPhI zqqB;Mw&F0V^s>ex5g5@|%>?wBzC=vI`L>o_328u;F5dnI$ZKZe_*@5M_uVMa8T zUE_7FV}xQIg7;IsYcyIzGai?KV6XenHjZ0vxwBUHbP0_BruocizHEYSJ+$S-{8C)b0=AJ&TWIeXfM56_nu0a z<(TAc`%@Z9irI&Z{X=FPI`ns2TVPPx$^~bt3)af!2V8zi`t}2qut#@ibhy@E|1c}2 ztpC&&Kl`xP)uLjMu{wl5#2*0={OYrgvndc2)X#Jfy@X=y5GniZvD9T{bhp`@xbF;A zmz#auNS4?koaRVHhtf0SciDlZ%S#L6*3>Afw>4rqrYlcBGuNRU;O>qd3Y1C6O-nTRcwbRn%e?fga%Ei+Asus1*xqJZEKBBcRwG#B!;Rh!X-Afl;2s9=_T zvG}5|sX5Suyd@QfX+lD_&35>zRcJz9m+gmDtI&k7b>D*~Fo9hxZYjW9rUsW@DjeTjnEVerpnr4#q1h>Nao6* z-t-#}i!<#Hoy#l@3>EDq`i<9eRTotxn`frqkj*pGZv;-i@q+0$F5d2A{^;7DaEzxR zbqe|ocBt0*g#$Xi-q!QFF*!qzx2`u8M>JG%Op&Hy8?;T!aNDH3T&;mL)Ed!nhkZv> z3*N(22*XSaQuJQs*VhyVjd$(Y`zbt>6Otfh%Y&pWNu-~8*|Tusza4fyIns*=ggKp{i`< z$squ$Py9xMH_vyd@%NpjV;E7B$OR_+-|v+Igw0NNC?pro-{UW*%m7-Y}tAHez0X17uB}2mi_qH z|6|KaY1#Mbbi_1-IN9G?dB^Sc_epL^y?y+s;E>U6|`UQNUnBE^zEj;?2Zc6kAzhf=OQchGdXvf8q*Yzky zAT>$dI+2;~0Xzb8Mksn)ucyk7d&)trA~ahF=v*r}r|`}ZX+TEo52GDfJAs7gcZXD3 z>KPVYzV)x}RD%r?C{SdAG)2MX&kj1&QffqL?zxFC4YoQR0lGu4id#w?U=Zg-Yt7&` z%N(ECWLH4ME)2yZaTtpGXq9)jqj^S`1QHF0*4^2c_PQ&yB$R59AWC&Zr75Kj^~FKP>tKK`A_uJLdu**EXbTpuW7Mv z_+ZAba~n$PrflUgN=gSG^8~Q3pJ+&nC)(_gvoK=(x8FH-*xd7mPt>}osfwR3)bev~ zl+?(sEZ6W&v}IbY)^3T3Eg7s;yT!L?p~@)8t%U`s{K3H-q5;l6u*X&XubceB3fGhg z90dkk>oAco4tJIZhda!J!=2`_zSPz(j_U{7pjORMmbt{Z)6Y2Ai*+H0n9hM(5Qp{~ zq#9FyE)gh)Kp7^?JAbTmO$7OJ&qbQH@QgI=X+0;YN$hnU2w^(@QLY2AJ(M^*A_-Kq^s5TMOSS+ujwN{$Mx-qWK5l8g8x@^?Kd7a_Bb1e$3 zooFqw%=Sc@l5}o|yDX;v~4|K#^D42P8|iz*|XY2rzn%%UplnF=)A6pCN8^mcCaA|cl)$LXi-$X4Jwv{ z5#gX#9ZJKOg#N0~pC?Flfe~cCb9_+my12T7%tmdqoWtpG32_~udW|hJNsMMqQo6E2 z4PqlUJYOT}$CQXVRx|HZ@f+AZLnD4MqlfPX(raq^N9OQi0WZoF@l(Yi%b_B9KKSd2 zv~u2B1u>7s>R)Re!6C&+N$WGQo?`Nu1KwCf zi?xfv=o-ji44dpogqH3w7ztS%8ic>aJ-RmL7We*4&9d-eCX9xQtN=xQp+4y~KYMs! znp;dWyx|vPc>H`HIytM3pU>6sW7cCZY`$Kv6WKhbemv4|j6M<`Hk46}c5npd)HdQ) zuZa4?K|F7TPzurpl-RS=5@%7OE<+}svJC(VY_^VE>~w-*fxWIkZ3Q;BvfojFbK_1+ zUBCti<@HDd7`5b9=nd5!DhN?iQ@o$l3GifR)Z%j7< zESKABRf#qMCp)Kxg^BpRNT=p~^+vN{r*l>q+s_v)cee1gs>Cn=#kw8D9bVML&JIhw zV^`dUwH772}7WKs+|I@TtoErg+*4V7^(>54~y<`MN2>59$tbzr@D4v3pVVurh|)W zT45y@Ru@Z+iMv&X4yw@g-9ebfO)QsoZ^Zw>uK(TZqEQreT+R)dG7yXR(udt)U#3bZ zpSOyEh$`M;G<55<$p^>Rm#ikn*E1Ro8eXFB!g&bJAyI1%Pc=I!c%J5_ z4;Fm+Q7qvTYhsC~HE{nfeRMCKYc;5oL(JPmwSJ&Cch!;J@P$k5 zbKOmRR8+q>Yhs~Iy%e<^uZrriFV}1B>$Whx;XhIzP?Y+JqSR$T)fX03Vq<4vog$gt z`yI@NT`IDZs)>b$8oV=H6ND5~KRIu6=oOpRDp~|(n=4}5jDKS#5HJT7&Y`sVYS+Qwv;+In-%>6n&Ov8V`V+ z$pavhYrNs7LMCzTp-)D;BW1&66Mr3rPoAYnhWq4pIp9_cJFHc4)RnwO5xS$e7nvK} z=$lx0Q|Mjdy!HW8hLgm?r4}2P4TXh$p&K5#FbLgMxcklRjsfA_9(sHAO)M-45mKRV zVxfH~UsQ=V62>kS0VEcVw9p?_@rftysWIQLn$7pnRQuf4VxM2lu(<1H+2_0M`XDdZ zt>Wu6YVh#;A+^nT_K z*TI|>gb4_{*~(WYr~CopkVFT+iOt@&QP`9YOU*9oqqgg{s;H%$y#0H>> z9)q!=N_iwma)I96tB;tw#>#T;s9PCRfJw{Z9Pn+kT-eYYPh8Fd=d8L=VoksLd(c&c zBI75i@{?9OlsF+R6f?ky1|t}}V1tWx`nqZVd{$Tj4d^*A!j8i*JqX~PE zFc$2rtb?s8;+Ob?JD-N6Zn4zIf7cF`R&EFB4^{zbaI1>C&PCq(`e;FQ$74iJRpcWo z<0~%m1s8d%A`e&O{TqpFA~K#>A52y;V!l30|0uQ#f^RDCQG_^KFRb|XKZKA22#K-R zg#qvC+IaoLv(HhETD2=0?5Iokn4MY1Tzbi4#{f1$Q0hNh_C+q)bXR9A0vbu42mCQX0^J$);9TWDj}Yq{;r%p)#KTHMSiJ5f zlo&(>&)6NKwEG>5R@6R3+2hu(Ri!FvP@(K?!E057i0u`ndQM?~AuL4o^TED?@=-N6 zb^I5fwI&?9XAafF6!{B9GESuu4sKQf-w#8?yn^`(Nfd|7QOISk$V*+3SH5~iNb)Ox zPUIJfEb5Vo%5aLy@Xy~E3|~@)S~YgQGRSlt08aR<_Ao2IISc@+6gg9o!xRbQ(b-ms z>-(>a5?6fkT@rJ)a-U;0s~!K{EjC2^*D?y(aw!R3Rw3(^Md~FL25arG8q1&k$GgU9 zjk1|ot0dDIb&%#Jm*$u29Q(C}JJfILcNK?Q;-UUjv=vD<6D5h0mYfbF?wF*CU=mjm z!LdtU%4UuWX=Gb)*g<#?4~O$>!AN-z$a{B}ch7v{w?FYx)*G6k39D6}stoQvVE2;r zv&ahUpeNQSSoq-muB|Xt_GlS9!8N;y!`^R_XK>7KH)nb3{?5{LQYdvr^#W=zQ$;PL zsPr|6>A@@H@`i?mihP6P!g4e-1@Dz3FC0e^VG4-{K|r8t>I1a&$fEKE(`oF#uZOD% zWf`WG)yqr8a(N_IHl(tm9vdKuQO~@N>kbettlKTQp=oeXGbm zy-Cx+&afnEu(7aTCj{hr8k887^zjV_DV$3OxxfxlFW|ik=_1(U79*5LKxv*yN+b`){g3elCg7U|lh0pWQiKPAJ58HKf4R`RMr0F1EdPWmi!*&3 z^2`@wUH`B5-#0q2){P8_!bbJbr-w4`d2keD88X!5bxMxl{%ZF9?AYhVZsq1=2cVWX zYvtC~lS8c3D*ZlRV!H0y>UH-5QF>DWOl!l8UqH(uU|{?RO<`#hUTC!g*rB8BnnCl9y0$0$9CE*pqtArZ`1UE0+oXuQHQ=sz(`tS`h zh9ln)a|Q9~yI2X5Bwv~+M48VeQYC3s9rU5ckw+`8;5%mr7Bf|zbuBKLQFG#GlocfF zRm`$5Paw~a@T5O4`ugpU!m*;k_Zp}E-c2hBhUEZFCmh1nGNYkCObgpAkmnVUYGbf%@7+r>=Vi{K(DW@X zBRpUgjY$7a?DtcS#n}07nKh25+Bm7WdbyV2G0y(P6aUJ*7%co@h$U5OZOkSOpqCZXp^UrG_y9DU2p2?tKc3Ohr#!e zK^cypA+Fcmv}6q9oQFA~1%((`lS7Y@?n!uLn=3(ADTPffTe+x_zDy&cL>>CW@4F6N zU$EZ;J?tM({dPNuz?w&elnacJr~j}8WzN4ceNqWb{p~PTv)bTH-M4~t!DlWMqq?tG z?!$3+OyC+Q2PqnrWJRFhTOJFt6TALi2rYp~gQFPBxsq&%$sj@gkn?a<7G~yvUOh1*;}(l7PU+s zBC4Tnlg^Vc8Kw<5j5SU@ zagY2THLo!Y+7;vAx|>2iXXA#!98?b59hh08OYtIEOED&M553KK)StnFU)-7nP;lY; z`6KOJLq9DKZi1x?k+ypXB5m7{O_W(;^@r0JO4%>$zAAX`E=53NM0(wCgS_++0`zC! zEoz~$i_X|~%V+JFKGo5%weYN*M;V6=1rZc)gWyDB950&BxCv^*giGZ4&QE0;&DX9j`>c}Ik;u6w9O+1-F}LG6}Q!9PR#L2W2eD+uuw&}zK{zy*4j%r z=?i5BDs$30an@|x8Dyy|Y5OuTE+@RCtsU1AxxDTl^P7{=z3$)0Hy2HU*S*?B^zgy= zNBQPfSK)jCXPT`#qk3`i5-^v8zpkY9dpXFA5N`eP=4`Is*7-T^YFvE(GlbXsT9n;$ zZbSZHH8KZa*ECaNyZK^~lK%Z%i|zmdHd?p`Lr=MAg$T^SGM24X>tKJFP!h{s41GtY>wF1bz*H%xHj;Ev84BtbD8tz zt=BGVAgN78QD^LC9C7Ro`V@;_jU^>tXgIUsjD{~XOgY`3_lixrn3-UEZVKDfomWkz z?I!|UEb&J_@eeVoyRQE+m0ls6Lnro_K?`P_UgiBN)=R275Dd0pt@rDJ>K zkN63We{rCM6HG;~%s1yOSM(KtwD)i)$+pBA?p_Rd50?k$`|VY~?NcX>Kj-+0wx=c~ zTaPysz$Tx~RxUZ%to`4g@r%myE=6pkqVgAavs)mTDrlP~yhnC;c%Hi;Jos#Ik|mnv zmM3oqmmSR+#oCjS@#AYIC8r$E<8rOXR|)Ij>`eY&7BO>gr&fiV)#-;I13!iGK@CSu zTmF?>3BX;4`~5ql7jLYd;iKZ3MW3M&&#Ty!9B!}SY&%AL=?de1H`%wfdPZ>01Dmos z*rB1QR#ccdKms-rAaj5m<3SCN2gmi*OBEWqp?ZaV7gukvRL&qEJG6ckKT(dEMkPv6 zt*dd~n(g?`ZaAmm+=lZSrk%UGfY0=Ece2TwzaqS-Ku@f1PAt*Q!!;E}Ib$5hOp$Z4)Q%MeX;$a zoxy8)bMSsVmONocaKA%w1H+22&HKKc>m%vg`sl@jI_MLU;y?4RdH?C!GVWYo6?Bq@ z6=pMPlC#stlEB>uO`nYxuYit4`QdM^JIwk8OkU&{TPE*Z!&7g^zqLO{We+Rlwf4qR zbE{Vbci-l048}<543_KZoaMTg*t(gXY1^pRd3s7(pXJzX^$IR$WO|#Dhthu)>bHZ6 zO$_c0%gPf>c62AT=DnO#TVD)7l-;c7TK8#6T~bZGtCx%0y^VIKDe+2XldLzK`x~tr zvcW}zj0GOGa3Blh{qi$T2Sx0%bApGL$*vy3rI(WFofAq*+K;s(<%6jobJJB8yFX|N zV-E(guAk1!j{e(zxlTK8wW>Yz0?b^&>Yfh{kn4{Hn2Yi4Cr^xBd|pIjYry(vWIT17 z0>kxBuyL&#vDxT7#Fs_8Bg%V2M0o^dN1qNTdGF5gbwCprYKtlm)>^4USbJXJZ@X<6 zgE1Q%U20g{o-(Y3^bNgjelkyQ!k>4y#?;{1;m|ve`#SI7Zym!xYnu>H&E|6UwqS3T zsrLRa9sZ}4RcfC#pl$aIkNN0Kc8{ODGFL`+^n!hbcmk5TN^m;eBSvyw`nXl(NiwwtSzQ5zi!?1?gdWE2wIW1BbPae6HT$uw3w4wXxpdHr6II07x4We!) zPt6{(b{@oejnIhma&9+egNIrmuEz_bs4kDx)*Yzgc&aK;MWM=KejVcLOAcQHncRCH z|Iql7DV>lX?+jIUQqsTSZ+Uzf6bBV`Tn`wVL*~pO1@N&CpSscqQ?+1hg-BsBs%8un z3)KfYbHqb<;Te?TLFDR%qDE@&SYN=Jze}v`Ms)?OaX5VXA{AVTy#Zepst>MQw}oTl z&u6%exGgwu$Y5%JEqL?27qtd`Xu&{s!~K661VuCbB+nd)b)59FdyCoe^rHSi9-9wj z@#N9mkny^XHT^X2>AugAiq_*|Os-znRV0W}V!z*6QtJIrwHAhm6HMSp0umN@JDpea z=2UoHHzQr7Z{a64^J|f*0I6e1`z-QP)20T`EJumcxppZCB(yD)!_7V`rxtL7=~u3X z{ZE|~l|+KLF}zmMJgz3xSo zRN{LlJ-L#Skcy7^!9$wPNBpl}`bPG}CIk#L0x~c_rYfDTN9sh}o;bGW!xuTJxX6_f ziPC@K$L>|6e=eVm!y9wSA|@+$i<{olD=6k2(%=6X)oY6RcO7##usBP z>w>jEp`DyuNOVgBG&04R9FkT38>F77DWsvLZ z)Ok@|g7;;zu35lN6|iUF_~QJ=>a&eHfih2>ZJq|tkGH&^ZAu;`lJ#eFTxVVi=0zkN6b0pwfs&gui`ge94^oFB=1Z~ukvq&^?){kHO% ze3%mJ1 z33fzpPuspo^Hs1SRXVn)(!?rEY;~@w z%6DjyfV{|0vf_AaP#f>ur{J{UuR?6L@&^)7CE;)OlXcnAM-Ina*+Hy-^X-i#lmPSf zyT?FA#YRt6OKrCDMoNvPuJ!||LSm_hmWm!XIJX#jaKCfUkXvdN(rl1hOeQvOy%Yps zHjkS0^$Jg{D?|lX5Ry4PIHXH+6H%Eu#it&!BF|OiVZo4mq~{_Hj;P8?J!EiPcstYH zy!EPEH2Vd-YTeO#@NjBB2z^$`-k+Ax_WAG zDy2aYODUPCUCl?xz1hkOIZOzhj8tJhh1FPLm_`iW1Bk1ULTlJ-V8cmXz$n)|z9`1lxIm8MGLml| zDh4~9N5bLwrW!iJDB$>cM8p%DGQ-UNTzO_^VoU$;W*!+e8%~6dl>kP^HZk&Ka}6>_{a|B``OAXDL>YE)eM`Eu4>6v ze#HVF?0_AxGXRTeA4qZ8(LN~#hOI7IUx5F29sa@4gz9YNzA6wgvDQ=_=-fk9hd2KO zq+G;`Y~`D~yCf`5(UlY@smUdIiX^(3A5~G!MVLq)vw|p%w2u{Lghhq*_W*n!#Az7y zCxV|4GO~C9K2$oSXtwfV0fSnp1(UxDnwqUV!{D2XgbEwlOOfp*5};17aL%ZMD@6^D zvCAhJ++wSUZA#r=y##-ZO&a@N%#kDf+xcGr7yTPk75bT9DLkj2sk=)=|C->%6o(=J zdH zP}heUzd3s1NV)Rwv_93q{7-#qX}hHh`=^{TB*?IwdWz@c$D%)LJ#7&>iVPRb(q?Q=!0#TDlM%ACL9V7YrP1 zMiL;yBJHu6i>qhgsmpxK#s?xLtc3+gUcYuwY$uNuY?M&j(uBDFdo`%VD(h(-Q!KI{ zATU(XKpvYN-COnnzN`KjPI2kqn*F8cgEDy@!-MFQw(;y%Zm-PxSV?*#tuc`*N=G6Z z$5Ox8uC8?FVWePM`zvXkw(2}gHt@ea%m(cW(gcS$l$u8zB=|(=Q3b*Iza|f3yM$g2 z#%-ogJaGi8*-I)|`_HZ5?qylEvPRI1 zRE$LNQBmV3r$`+$r9#w=@1f5Ffd*!XuVp!rAH}S5y*cJho zRJSl-+79zmai-5?1H}NO7rwUwa6kyGI%dPWGueg*%786>Bu+CGPed{;0LG8n~mqz#h~OKVOPz;uyPrG>65^w2HAkhWWx4G`5^B9X5vD zXxfKpbvxiG}^oeONY=wg3F3 z^ucWV$W*@9{VQ58qNwsq*D_-h-}9f8M$ZMH@y4{qhwux=fFPD!WzQ zM4b~O92v<>E^csxsk$2O2UW&SFiMUnH*Yna^7Q2lic4@D~cFzo#21?DRId@|KO0;QoawH30P6n0j6(wyy z&5Rk4^+?NlWtE+wxN>AzMRs(hh1*6GYoB$wqWt8nir`y6bUKcGUsl74*K=CGY7cQY zKM8|*tF(1*6i;nmplVjApY@aN6`7Ob$(D-7L|>=)nz!)Eav7L7P{Hd7Z8R*u~2})y6FcF)~$aXtQ^56zM3k| z-6Yrx0&NlhgkSl#fACl=@lP4k)U>H9t9^VsFK-#tHd4nB`tk9v2CfaAktm^CH8gZ6y)zCxgK}xS2pfps;gGub_jP?;cLR=HDPj$lPI}V`B7#O znEr4qk*aaZt)7~tPVF;KzEgkNskpFHG4E+|8}<#KV*nCdM`|`&rAf7lY&K7M z-yPb%W%=N|FC^V1QMFB&*Zd(SB=-`&`V%0IK-__A#Yyb3bdZUm7mTWmAbPX*Jr-M_ z&d3PoX4t^$1Jl7#e+CA)q%hIS8Z8A3rgb@$J?CdypYZIP+=UfIB|%Nbd^-sEe&$5&#ogng3lQrBnLEZj9~M8=PnAVusWNsxIQB$&vCcId zOXK_pyAGMD1!iaZqaw4ssry%Jm`W&OhC?B`%oGF~epRu~bt3^;-~p0@Q-sEjV`G1C zhH4*wm(}KVy%3R<_6d!yswQ@?#EL#{tZ2x)#+>2vZNt*9a{Fpg!$Z_aiy0(re8PV^ z-yuozT(&AWE3X5OEJwf^!U|lK>FQo#21V+Cn7@84;y`wX_OV`= z8BeufkEYg7Hb-FhD-)9BMejp#$1{85z1yXG+KcjZYg&Qt+<8e<$h z^l(t4v1t|Qb$0ZH$|X@L4?fP2i@zWD@sKW>KVO4r9)IMUf^h(A(lNKFlX- zUrY~Kx@94Qai`)u3^}ql1*7ProfZ5C)f%6w#Gzb8)>;vK!$G5}MNn0tUm(cu7=5To z!7mC@eig2G<3RYe@?>ZGWjIE7^aT-F;tLQ8G);`B}xKSMKypO3nE$i zD1doLg=Z_js1XTei2A**)7gE7>*;U$`VK)~YET*=!=rR9hGGmQzRodlcJV9bHD2Wfw;iPP^6dyUrmM9s6 zY9LBtsk_Qt3YKE231wl+Y^-`zzyO()nt-qeE+-`#-*IK1#D4la(;E`Ys)Z`YQH03! zoowyzyE_^ngy8NvNbfAEAVfWm} zFrjd{5_qHNxbH7d&Vza4=nc^EO3kvA;V%U4~NoQZf0OBeQ1RU zu7m7|E<@Etigb8kj7GYK3KMyv?92}JuKO(2i_@{;uS2h?b4&d(8~yt2UiTEmB*%fZ zYYl-=TTLuAZZF8RDwYyEShX3O(!BXD^Wkr^pLN}vXJEGZX;TTP@>JQ`ZYh%*$DaAy zMA3|2s$HU5!Rf{T^t?#vMbCNSX5H#zB$NIK34C~|4FxwaAO%0)5OC%i86Jpb#MslI z%fUEDvsou6HpRS&ud3|aFja+l@(!`q=-u-R!#e5QV9)?79WWNMfvqF?9ny9{Lyi?Vl|)5`Go>Vw zUXK;&+PBQtkmCbx{(Pu|rerIB@sE%joCQQ$?1ZdU;#QBwi(>~m=H=Ky;sFurq@6JX z^>CgUl&GmYFoT^lf;%B)&B?RK(UfW{75Rw`Y$2RyW&Bj93Km_=&^I-1s2G8tnz#cW zV14@rjY&PAh@ak=usKw{CK&UKz*X{}7{NV1uyLBYk_Qjpfr}jr zkfP#9e9RWV9$w_G=6Kz&aCl3UqE3@#V(}RC2xZj_-hO}HI?aE;YM)gv4rYJ<^)vKH zR!(1}=ilo8>~}ti9CyPSC5tBxo}ReID6oFx>~dn~JX@sptC=F+lN$(y72P5R2G?p3 zgO8|&5@Diqf}hpdF-(#}$)O zW$)pm9n6vRkJ`#qhkCI`yxitm@ep1%5f+jMew+@7lW-Q^>{A-zF#fW&xiWIKaqOy$ z)0U2#aB^!%B&-|(I^-iEVp9_eti;uleM-+ossf!bt7u3ybKR~mAWus)zRKda^kk}d zwJ9|Vnf&BIoV1$F`Z*;mgAL4RPgvEEcskC@N@JeoB{7)dYUCO^s4=mHqi$BRps%6T zf0aNtJ#nM(+Qi#V%+?XF^FG?tnCKa^k*<${3)D5OC;F)omfA1fGVnPxUhZ7QGfNxTZ!3MmN{wmH=AuwvG%4Bjo)J%?29jQ(3<`46WlckBGB&^G z=R)0_qR>G_p>^c(6AB$1hH~Jej5f6WL_HzGkvYF5_RSGij-%#O1dihxC++@2DD%lC zno8)U7gR!@eRDZ?#f$fY{rU;slj?^dn+W4|U(3cuW`vk>k!0g)$x$ZdFAB?dJU(1U zG6!_fK+OrW)X?rfcwPS=dG7*VRdwxsCz3!=aRntB6>HF76Ga;;T2fFG4Y;@NC|;_x z-td+}MWm1*R;o!0Ud0 z|1sCvdnbUk@B4kvcb@0t(X74ZoNHdj9AnHe#vF6ZCORfU#CSjyV0BSh>Y^15RM1GW zfi-^c1We%(9fR2}AH?a>0tver=mepnHGpL!8vlDNaa}>cQO_fsmdRJIB8m2veAV~@ zH);Kvy4o~5BAC-*4vl2N(7<{1L|TOdTF^rVAz((5xIjh{r(jDB=B0Eu4Nz0nSi8yV zIGQ%SCG(8NSymhr+rC9=@(d7SzGGfokH_YmYpA)WJPU`x4L#6fbLB*@v_E=#PpO)e z7iIjuo(g^w5x3hA49twiiz*SSZmHBLB5eraS~w?BDm8G6cB9^qNEb_1UTK3YeDBoc zs0~syn(Av)-i-Sd+Qy$r<(abAHj1_9L~`}HmBs=O z%^a^NE^SQSqmCng4{!sZR=CoDoB(bJlqri-XAF6+G|f$0p(NOg=LJ>O1H3*=H(YTA14OzBU@1ISkT}-?C29Zl-{Lg=ll`YMGAncL!vo(WT(> z@BD2q!)9}%T0%?~wFU&Dmx+2Y>fvRwUN(acV%M`H@z55D2l|W+T8uVxuUYErY4dK# zlwC-gxhJRo@*YXa<9<+Z7+oy;Z4VLbw72MA_ProRo`v=E$LaL|)t@}>#+zL{y@!dX zSEaI}m8lidSc3~5xVi`Xaf&n-Qn6S?Ug4GR$Gh(j$$r26yJSABvNS+nxA`~f>)-QY z%ABilhSC(Q(DmqEeKfCkk<%%XzM3Zf8n-S!x;*US&nTU~fSe7NSk8BT83qHqRyik; z^UW^~5eR1Ln+odnFIG-<-k3H&P4zhO9QU59e)}C1Jwio~rD)bCS}eqG9*7h4-hmTz zjsN#Y{7m2?z1;Lq|4;&LrD_FHMVXpIoXx=&dW+ph|E8s1WKtq(|22LQh3q#pV&$9{ zj^9MGFsg?#skhXF_OJ)((}IHQm3&-KP$ZCArj+x-g8E(z)!#oTBR=Eba=DKG27P?= z7R3@;ZUUtL!4lV|hL`@KzmL`9?`eWd`}p&iAp= z#Lm$HI$hU<0aV97stQ}sov$r9FZD_Z2k_gj#gq9Ix8*gM2OC}5G{e93=)b{{6DQSB zLkoLi-F&-!%hd;y$)2(Np9jeqylhV^cJ1i%GQ$h`c^;=BTj^u(^TMNLBtpZP$VfGm z(HJ`(l$A77cK17K2Hy+WKd?z2A4%RF+|IDvMgEo>mW=81C}F-E|Mu5&bVzlaLItCe zp-RcLH=1X9f0^&}O9F3`x2ZE%M2t#pu#`-+=WUgf^h^#plmC0fIyUQ_C2zYuVI_m~ zj(ZEwJ~tsZUi8&(LN3*)RXww5)$2(=3rN>L+}3~m1T;twtq1hbdcZDG*n>K0Z@jA~ z>QThBIgAPR3@#AjdrLn8pji5S=9m*%vAtjR&ZXZ)yn9weBs4$su7IkAL8j`S2zT_T zqcacE1kD$-My$3jW7Sqy{px@Js|#hUUfL;Pbj~HwZ%W_Iz-m<`puDHzO=29c|-P^cXkceC|%|DJDR-byO~P& zqWVkd5S|W2x*fF|!TNg~oOl@#u4H?Fe=5|fv5i6H^V%0uK9-!0wOhXaUi;7Vj#6qx znDXi146R|WOrm<&%k_q;%J46GEQKAOjb2W-Ge*`mO~L{_5sC~*2wdAWuSvvH()~YA zR-u*LlEx+OcN+i&5A{2$(@YI)9dLyqaw?bKPFvaJP3ru>o8Ac&`4db2aI@3(*~Y|b z5Q*P*(rGZ7w|#gmhk2ky5G>(eg*yq8=LL?`x-m{-pKWWsrvYnasU9R@fCs= zt1Qrpjk%b1(&L<_sz zHHgmlpe8zuTZ+`ds~RdNrM`y=AO6E(F0cJ+-5n$+f_K=;O-<1oc0aQU0qmlEom)fm z02A2Khb}8+!t6Ku1>8|N?A>gsNZX21SXqi&pgX-K-I2m)BEwP*H;>&5)pzzjG~Hiy z1-VMEZ{2_jzua(|FcCLnETyQ|K9?Wnh$1xC z>v2o9bv4Iuo90IgpXya8=&&DjDOR|J4!4fotH7K01(xhSJx;w#nnqqHycN;NN|Jx; zo{-guD&Dih?R#U-!~>q7M?3eIeM9%}h3DbFhMxQSIl+Bt3q+hiwYLkMP+DZnxg$zS zlUQW@@IKqwmDO?q?fzED}=HTf?x(6M|SLi6z8vpmc8vwul23d zRdkK+=A2Az8hwwRd_74|kh+3Rc>D*~(-)9)KNE^b^1s)GTr}fM_N~S2jW9JHmI50W z3|8>czhw)oO4s6#f)*LKtNG>~YA#UC<=L7cTL<}DDqD>+Fd_lSMr0^NZ|B*VZ?BxM zCv7j_segUejk53l6YGXC`##H()(z72FP0oWe$64$+T6O3JS)r9RRXU5oN;wt`fzp4 zlhB?V|5naeM5e5o4v54n7>a&IYrDL50T%1~K>1<77A3SO-;@a6-Qwf+oJ_{5-}-vg zdt_~vtuI*-u=SYOy3)o$dfews}8PJ)?(-EFqZhp9rSM+08AftDeudt<;N8z94VrB8zn;>bE$-oXSd^V-@K zyAo=)eGZ2kOFg0^Cj*2_ac;V-*W_Czbj_$`%-y!?wNz!QG$*gf98gcBfWBj1P{QgvRPhG;uJ~ zVSD2T+TQrPe{qz*ck0elndRWT)>6Kw0?gp5g%y&uR2${mCQ^(B4U7`*OfN0C-;_gv zw9~P&%Ts{CGh_P5=iVB)KI(2%r z#+!G3F%z)<`rz8^KaHFW!~@re;(#tbdNnflF@6@erK(nk~*q=Pr@Uk(eADoxn$&${4o;iFY@*x8wDg z8$tUYs8Azg8)8jrAup`YJNEy#Sdsou`hUu+MkW8K|MxOX_&5E(+Xkh}or3-&4vD0~ z{;#3`Q!8hin*>J(japG2%p!sOVHjg*B*rH+k_;x6CK*gmWH9CXk&Aedg^ChuJ@&}6~i50PZ!wwC_C9+L2*53*wO&WZ6Juj8JE)}PdBAWGy=Ozw#IV7y7^EIf zpO?cpCy%L#;xiu&{oehfTYLk6GG4&wM(9Sui z9I@k|2!h=~6NLCUgBUqA9K>!0LMmwoK}`(@Rp_;ZA5|h_(Uwvv?ubh-qg7<0e%0w$ zoqnli8D^+n=ll1tVP?u+c;OuR-Lr(XJ#q+K_yP>UIu_uZewL7nAKe$%?|*7?=&?;F zwT(R%xydu=!!{R?Z60u6ct5S=Lp6bYKYI-6LqSFS^(qRcb_+^C`yn&5aXC3liCR5W zM+v`|+V60H_(BEmVjwEp9h7C5ZdD3Kibqk9!(g#b1ur|WH=7q>s&Gl-?KcA%mgIsD?h)SP{<@TnL=X;{Gy^6{3K8oh|l;P%%;Cdzs}DYY)Zp29BF7z(+rNZlN*ce-3*PdrI2pLJZ%BWO#{72AumYC~UL zf1=iwP}f%vdrO7kWNR7s8(XCW1&z@;HD=sItr+(!H6jZo8#G%3_I+7Dr*g}Os3Ns% zz4pr_7UNSR)g~q8;bg_9BrC#l*A^$1n5-DV1n{yci1UW@pLh01Cnl=1SuxRI3;#?O zwMqgp;*H1F>V{k=N$|r-hLZo*A~9ayuy!5Pwf}=+oPqqHrKc`3rdd0bu3KLFgRJ1% zo@!e=DYO&ZZAmK1EY25%6B8i)voK57v4?b04bKu9j1XsH0%0a5a?jg&72e>p==k+} zP++q@T*!baSy5XG;rdUE;hq&U2Gfjq8|0bc26pG z@)gZ*;QZYAxxe($_kPe5>U+k!(0lgHKQaZ!#bbONg(Q|aCWcp9wh234&FR;D^Oui0 z_-_~w>Gk~fhGxn>c{*&*nBY#@Bf`rI6cXpO@ok0`YI)r*1|NtwVv$BQEauAhuRWK{ z(4ca=6E>NCQBgGhn&5{)1w|5%lN}8zgcMvCF5{eRiNv{sulE}6&UIwh@b$Yq&k-y1 zBg0T7!KhKKr;VBOcNb6a@ATXjaQqM^JZlU1^7Qv|FoSqlq_lqjFEHKlNv~s*&9c_- zH5@f7MOX$PybgOU!mbfr1f^TSk<`S#>-Q;%hQC(`ITkWgC$cZ{cMb(P{I{=!KL{t+ zlP)?I3gLzJ_X;ht;UYZYDNTa=NC1?r7dqMUfL7#Jbug4n)$g|YM|8##m*H4n_%_a2 zotS`@rc1N*q*qRNM{D2n+Sk)#ovFo092^;b=SeN-7R=I);9_5Xj-=bQV}k;i`jjekUk^_&iMotSn7ZOyIV71F7m?S=4vd~l*Qid zQ(4O^ShPC}n*V~)dMWpx(PFwMYabNyB{&b=fDgU=<-QGw^Ww{S?bT8XBt}&6Vd}tM zGcaGESs>6D$R4?0AX~(Wv@F8lF>P3tKi3ikT5#<9Z-1tao9x}qhSpPYLtN49R(VYr zH|1^5QiZsUsKQ!-TTK#MoCt%++0EosTaiA(1O@w@1CZIzUdfj3z20_43VT3er{FuABfu`A2hP;ntaf}kF0#KP-8_tFwKwgXbJK6{*jiBkV5ZsHtAunsVhf) znSAhMB(Km8{T0!*j_r?pu=3-+=CjV!A4wBOM;Q!OAeg#z0LcXZaycVlKUun}`2yGz zJFT9g8SJ%kDO+eyj0t+8!b+#`N;w;Wh$JIJsh*VY49fQe<=69MbnP~Le%xa4&=+pq z!Ysa-BJdmPQk~V*B|QZcG9wpMToJsR5sddLy(jt5#z56UzM0yl!1j2TVx&!hI^`9v zuq_3O(-gy|oA&8#mEA!VVgXu=*6B&r8n()LSl#tA=Xr83T9i)bwRpWWx`|bg>I)l`Tz?hysCCjg58&+Iuj!Zn19zUnRrD7uh z(t>!VY%G1sDX9B)(L<)G6~rjgsyInLV|A>W(nHA57E*v(su=#iR$~H@d1Ha<9Tekv z;h9#NM}ks|c2?@4u+#!dNgiCRQX(fkO&%P(6M1k4`#)c&*BjC3JJ#GC?fh31yxfADpSwBCeNnl9Nio&~Fl{F#E5zNOx}mrC}PA>iWt!#W;363|Azauwj%AQ5YYV2vI^>TB2LSo z^mx^*yn^O2ns9xSDf{~>CgF(iUA)vjhqEtKoxi*SitcSs=F>&iLI9V=Rwa=men(Y8 ziKQgy#MER%c@^z7RlC$r`p(z))HTEZ&Y+TroYNSYK}OAF%8sFsdf%-gp$9?_F9y*4 zESHPvEq7z{k0MvFe)2LpT^`7nrd4fPDZuAKNE{x?3n39ke8UfQn}5(Agphb52NIJn z*IV_X&(T?kyH2X%Oxb)@&&+HN$_rjpXG$uLL63Bup~}a??ru$ ziD?At`@G1zaULH;6Vs{)Z6sB~YagKU@%LiM>&l%9F|;)u#-Aa&UfI(tq!z5MLV2h{ z!e8gLzd#iPF*#Y{dvkHy_QIBZiLST3pn0903`uu~>x)aJ8`p2nl-*?Y;FJ=JZ|7|J z-SBrES!@3mTtAw;uqwLZ?S7{v$NquJ8S18y8`B3Ux?kDpd`G*qy{0OPe`R}rKA`!A zqpI@TpK}x!3A_|Zo>Y?GzNJc=ISTQ<*m^MMs7OKcADskW=%;^?H=mrlSXM>zj&5R! zN{+TIu?TKjxp$RBm)oZkO|4rvf(r_Qma$ z6P3W1lY=j79W9~jZ%pr%<*(7&_nY^_(0YX8r=iCj!Hf^3hV)xH&zGxZlB>nm!9Kf=E!~3gQY+;2W|Nqpb^Q2yc}pIX zcs=ann}_bz{_1RE%=Pj%Ahq?cW=mZRy35yqzq-)q2A)|}X}U>bh?Mrkmc-NV`mt1{ z%odz?lU(?q-X$gp^u&d-*+3LZJ@XNBiS~6; ze=M>GW53nQv3eP;7gm=7f#CUisRnG$s39cS5}wjdB;WQu6wOiNQnKynusu0SY)_O; zJxlBAJjzVqcO+3aA%b!qxKb0LW*X|x($2sF+hO zpnwa$3@U8H`A-qBS@hW{MTTLNA{;zC$0B;?MAQd+cX7kjN{Ks-H~GXB1ordYWq0T{Q85eXPN59w>=Yo zV%T#WL=9P~y!NWQiCe;|9w+7r>vz{O*1sQ7oGszx$!K}%W2BISZH`(6V`B_h0E8Az zXxwgp;XXqTIb&3ju5FSUJ+V8C<|!ucE#VA z>XXAMAKaJ0^s1@w3-i9@-Hvcc|EOK*wOv|i*%^5v|djzrW~vU4?g+2ieNDS4$-P9AA(rJ{03A{8iCRSY1@(e3@G3x`X<=NUZXpl)Y1tCNdBP#L0 zz=&JZayRCkEJ}lx4Ke^U7ay`PXD@i?FbRNf%hn!kTkUS{342ZXy3{z3Fpz(i7grcT zbwsKJquYzCcm-y~H9XBdr{4ZbCn+;=zm5(O{NF_1!$BpTstlqxtO3Kd%q>+NOlD{B z?B*#!r&PYr&gO9RNcnc7LuZw5(_sD z@kb#cpZFvQQ(Ady_80OLf~$&H{A0xM5^u@el`0L0>mtF~Jx=-5$viZPC|O2^I|h`X z9sE6)s6GZ#vbeCm_4scz?>4eigOxE$Mmrg~*0!6CtN%QNPhOj#)G0g*b|Vs1G;um` zc&vHAp9)(?>+5IL+4(|Ia7%V@zFx?q|2)i^JoUBipO*8mvzdjGh`;9uLe;f(p_#1q z-PX#Q!m)*3yBs0L5_&j&S`Jstp9xX1&Um`U(B>B^0NW(*hHaXl0Az%++|&(lQa!yy z^$=goI7wV^!-bFT0~Zq4ZMP^LATp*|CX6BofZ(Hp7HrkOL}wEs4uOXRC;gK!HNo=kuAHbRHH7m&iFZSc`4rTk z?PEsSqb~6tR^A!ByGFn{-s`<3zcLij0a**e5KCUUvy))a+Sj}r*Y|2+y!LZl^(=?| z8NFDcLFsv*LY?DvB zbVZyLbF;uE-J2Y7Gq@;vgsDz=>Z{t8j;4ei4d@ zAA)d2BlH7=YZ$??yttb+;8PQ63kKepXf7d+*!d+DkS*cmfT;1b)Pn)WETZEnIZsF9 z?{l{Sht2CBK}OWzgLyjj{$QTg45xoOVXna%jHlCMu;nJrS&V3XTGLn2kvo)dYI4t6 z(ZtzLmum?VQGbYh((p9i@WC+xIjgf65@&Qj4PB1#lQ=8ApUo!QymdOEt^J->n)7ZN zMe{ntS<#sMF=x!TM{3u39lI$}=2>9)XBS`MIyU^nGl`mzBSfg~P&t9rf$pfW0kFBI zfTbAMyAp~tjiV*?TjH`2qfRCGB$~Vk{K8CsYO?4u5NnmW#+jr1 z4)}E&eU+ST6wF*#;e`1_u8oE#N~6hNspg#_*WZL(U+;}v)(rM<>P0RQl9^&I3A2^H z)pL197Ud%GB6eUwIeJ@N0?2IiYF&^Kgci~=OS1!=n`-MzyPfv51YwPiZ8F&?958@} zV#y}&k9fqlwm_qMon`Rb(})khjFJ&f&~d?Db$!g*-Po zjmo~Ecf*6CeQrWuF4{+eE!MuvM8#u(i6|b!#}*#E3} z3@Z>@d8=RU=p=||^r)l<;ynH-pq9T46F`_r6iUISOUoE3oP?4NwxmON(-?mzy6wei z;aZM>-y0CkWr#pe8qo-*u#$!+9nCD{75_mKAQShMxjA;!f$&B$t6BqHY=azxs?*D2GQB0gS1pm`by!@8l5`U%)~JDv z@mTd+1ZZHVS_y6V9I}G51q3~R0X=KsqL=ota15j9)5y-844{p%T0hd(!>WDTlPVXB zAKnzd*$}KYrFabftXI_6d}8m*47ey%vspk;nAZu$aI5tdTqg9&lwRSOVzn>Kf;)#; zJ06_}q7cSvU5q(++Nsabo}9c?j4Q`N#;$IRzZk84Dt|U&AoWD-f`WIpzLQv9xJcSH zMSO(MaICQDa+Jyf6G@Kh7xFx}C&WTXYt$A8WW^ViV-6Sd4SAo6`BNM4g3h_ z-ELd8;zI^RMwk-{fQpB)f9h7z>U>%HXmN$wcQWc8{$3H-PpjRRH%py-(t;uA~JWS zKIk2h0i01hhOZ^ZR&$=(COHVl@D7%?Xxk_KW_&+~9P(dGw5P4-@$#nlBKv?8RUCU_=aZ0S zobXIorEzG-D8)fLp2le-J-~6R*&!+zNx_t|m|~SIB*ogB4Uf~D!f>>0fFY?m&hrkhCuSr$^}tLj5sYW=%TmYh)noN;V64vK6!HhFhzfCGFLKyjrKL7Ex0j07GTLrK4-2M1 zZ|mbpLxxcH5;_B1ciu)Yn{3^^J?j&q6+nX*HF#~6q>NFW;`4hlDVMI785ZCedyZCAv>dx<#MyiaNhr;4-tv%w}jT|;*> zV9nS^Jv}9H%bU~bU@EFEJtm+dojCbOx~XY4=mF9n^iTLA6-pDLvFkY@5Qg38+nqXv zVkS$7^z8LK}19FjM%@%-r;IjV`BfZ<2VVkP?DnZut7eH@q zK@U!T!|PXV)6a#pAwrTsj^J~LfNmj*+J2+fiPjTKUR=oSl-`ZqRy1J3qloW!c7K@g z{Yyzs9jnjix-`N^1(!_O&2-1)tUv5eURKdk114WMST%LEDn+W7G_Lp}RTqmd?c|Xa zUWh~4b&`mHt~s!<9kPwr)GWd+2uDim@6W1N60wYXI8Bcdknfv{5^%SAUH~h!sdSoD^W> zWP5k4BUSx@1p-vCCxv?qgFQ9XKH=TCmYyldR@<5ql!xnCaMv(AB)Ltdoc59)Ol-}R zow+DqdXNk0Mgw9i9YZ_ahyrnUU>X%IIR%yQho+!Hp)MsG5HTx1eDa@~49P+Qww9KP z)X9e3KsOqHil`BR>|7V>m>X?+13Z1}w}z*N5nNNbp9Yp6-O!jTwU&BIZg4Cqr*Yn1 z=~A}XneoJ&-AkC>-C+d5b`D(Dxmn(~yG?)MmfbrACettxFNAunBzQNK(yo~D0%e=k zlWnwUavISMeN#D~-Ioj)p@Nqn_KiBSgp#qs_Z5z|Bv2{2B>BGID5T*_3TbF9QczC{ zvTl=s@^ruYj6|uXXj72}HwKiC#f1@|1ILmxAo|y5eVzDq0=#i=it9c^gSOp_2ygg< zYEN^k>`Q@``wdMDD1VgjN==9@*t7b%tmZpjFwYWD!*RSg3OX*V@|1vr*b+P{OFYQQ zuC7d3k<}n=9U+lEqs1B}VdVxFD(Gh!ooy&9X>#Nwp&g4vf8$7dBZHVuKMq5p6ccgV zR_p6nq)*nL9RH7Rfi3=WvQf`1f%7B&8+xx@E7mj7VNOSzqA|zUuyPqkBkC4b1TZ2+MB_xN8LiRG2-aNo8E(WY*3C+gx)3Ar@cr7$GSO>5Czt}T&# z5EExT@_}EUQ@|P8ZIvS{C z6r7|?>5Qm}_HkBCe4Cic+QQKU$ErUuP4PZU(+Y&j;Fcm#UDkaJG;3jKS|917JxpoL z{D+iA?_ll!4^B~aAX2p;uXo*@Ka;HULKX zGhk{D@(*-GQM8=i_n7H@--tN9Ph}NBOY@bl@7W~v()T{znZ9TJG=0xLK;Kh^S$!`| z)WT?q()Yr|d0}F|FwykAjV-@rzexJoBs;VnK(Qv07=lC4Vmu?@ea7;z#aN(_m!k2< zVw@wF9=9Lo2h#h)40m1uHGAz-&D8>F3Nny@YqTO!U6QTS*M>kuNRkxL#;MFIS_7oA z#Uzl45q8?kT~2R99F>HFqgRQ!RlQxRm*WE#b;_>-7WFX6edWhke376?Bxe+$t`0$m zH$vh?<9kKpykTS6`ESFx#G1Q4}X2fi|+3_Se-OSRQ?gfJ`MJAn7 zTFQV*g{usxv{Ti@@9MTm%MWR%UPRl*=Zk9{(xp;8Z%UH74r;iR?Q#srH%h3`Ou)Gi zJHNp$xUI5)iA7(ewl-S*dLZH$FOS8a;9Nf-IW<1?8+j!54Jv(DJ%hyDO3!+RDMj4P zMY(h&Mx^&=ekl?Q79+V8r_P`ks>@+oA7fEu?wV5a8|ZV$OX71_{NraA)8@?GkOOBO zsfH#+in}QYN8V18?7(*cu2%xeBldKr>|9!o#8b`&D3XTYp6ub9(0WJkNYk0y?%$Bf z#Mc?oMXH}LqC4W01L>}ZZSs!fE24s}`LFjZ0V z8{<=Du$r!bf9qx)EvS`7iiN>IZ9PyU(x)Q+aZ7J5cIcW++1H4O))4x6oQWfZDn?DyK9=91ICVMC#PBt?Mtw%X|fygji_30)D5!(gF*Mq(k_p9I|-uBSdg z@RofUFJ+n*sx;J6{#dU11^xjK(HB86+!POeR@;*qK9UCRo79wqm?HYeezY z2dfu>*_Z5fM#;|d%hx`38D)!8@w)%l-8~?tDx<=Y<2qV(B517xz{$A46IFoe@$Pf zk~QLXt|~d)JQ?ra))P40)W=uX4|^VTxXbyzSk$CW$GY$>S<%abgRbGl+@MP-rChU%Fnlu`Np=BF{-@v6P&oiVVY#1d zw&!iO;p)FXev>(RR%wsKK~k<~`2YWmDw!9#X8GOM(jVYmk}D<0w@lg3DJ6rRCP))C zfmBVDO%M|`iFcj!($NjCif9mn^t|1j;HtW-vO@3GE_#Vv$y!yu8j;$bcez6v2st&B zGXtX4pY`vm;GCX?PM%IW^K*-mh@roB0sQgiPE54>H|BZir0h<^;yr z{|ET={VYDcbF0Ir?^w#N@Trqh(i|%UJ?K!_q3IO?Yq|@9cjFcSv($j;*n{$gG@5pE z=fibTd_vBmGCr$5p`u6nI^H!I+XYC_#Sij@$7*kLkS{z|zPO6YTf4jq&D5Uti}E3# z*skx$uM^r(-oE2K61=M&hxI$~*K9kdk-xL;YJSI5R#+K6t?DJFwgO0d`yeAQ!`O$j7iA za%v6cXS&so+lkP zkPS?|T6?l{dnp83EX6xTf)kfw8 zK_#U;-Ij|i1UlE*$`5gp`8*>@SRo}IEakgQ+2g|M_#NfEgwglYr^_+Z#rGiIz_vFn zeoJN(fiB^gB`PUz{l)Y768^UoHWqM6IRL}|lmX9>yRZN2S#Zg@s}*CjS76=T^63`i z;{TFmis|hZGfx&DP~nzObyc1)3wYA9{T8O{UnFmh7Q|FeSf~{sfB94${>Mk@8Z9P7 znY1I5cK&jzb=ttFg;@AB$)2}YPPgY>m92VK-(|s5#EyHYRY28*7?iCGv|z?^T2MFD zq73$GF(e3eN9kcX5r$AjJOvk!FTxQ1JqT9w%`PP~fJzpByx>OmzjpLa4)fpDe!Nc-MptGFklLK|4+xo!DX8 ztWs*R9tG28)0-#t2u}WqN4}j&71OtoucmI(IqKwbe;hxY4wX#;Lmrt(-TrBX1Rd^A z>FlkIf4TatOzI;l%%(i9l()hZ9co&tlpa$2N2+OKt$y97U(5MLGaG+v%~W3<24CJ# zKr_E`ndKubVDU$nhM|lfSLO{a^V1s3d?}mx2W4JPrVG3L6TP0JR~*Vv0yp_{l+r+o zX{|1@a=H3f<7)gbS7S%E#`E;SJ}&bXmpM6`dAu^WLItk5gY~*Wudcam{vf5iK#J{Y zy5|0C7R{|tDgI}s-|&B~6y4mH4FKJtlsm!{m6@rOM3}-3lYg;Nt|7$?SdXh5_uimxR!qlOc1I%Bst1=zB^zq<0ltTS(iBG-m52SH-2-Dr)t? z7QW6_v7b`jASJJ7_o|8~NW+3nEfXK|z^HfwJuTOA|v}PNbrkv_L)cCxa z1cki*_$aHSINRPy6!rE{WIqv-2Md3JJ42<9Bzd8x}2S-Yipu~T`AsbqHNAPL@JcTkAZb#>$-F_D^oR4BEC zZltz%OA9Pn~9ktRd5aKDdq=-f@$fIyabHdZ8u9zaMEQCEqdnn`)*P zY5VnO^+&KG`QF0RE4i-}yuyF3#tib+Xq_t$WXKLMLo}j;a~L>42^ObdaNCt^Nno zv<5Lgy&Utf`$k6`{gOxAORHWU(hJhk0$z5A)$kOVsk9q^YNUH+XRh!Jx?8A0o&0Gy zSya>tfeGR3{LSCZL-?5kHe@&s>+scPek4<>%H*i$-*%Lvl`4H&;ol#8YSTHIPgD0& zt-j7{VUquo{1z^r2LI^Q!lod5K0Wupncu=h|E&BL4%4S+Q+?`n*GzC3-s;q%9BNso zZy&~>R|Rh){4YQRm5`Jz;Lo>b zp!uIc%ztG{-P%F(uT&=0R0w$csa;+S&tJL1&3l1zJ}-7ThI^YAeqkqr+*ua?hctd~ zVO{%1ucMH5ZJiJ1XQ6ufLkL5)8uS_{j2xz3??K4=Z~#XFj(hFAosR7Jr%@_(pGG$7 zW1)n9qRCW2=v*^`c*-FMf0%3T-|Dul!R_7sP?<V!0=3XL7^{ zJE&(CKLWdNuHW_|x9pT=+q8~KGx3K9~AAd1@a(Et|_nff@f5ljBdgiHU zTSSw~9nD+ij^_O}do+)Lr1isIWH)?ghx2Z6hw~12_#nx9BZc0k)>S)_% zo0<>g5PmrdYoty0p@$d0XNGT?EA=%$ZB?#|dGLwGzlbHSXS?y_a{2A&M?E*M2LA-2 z=vKT9wP;cG$4d?#jBRz6$*?wjgy?`DUaYUzF zSUMf-&iX^>7*=^K`JYN8PSJdhaQIbN3h4J6o)J=vyY z-~28N)RiK`mtB8O!Kxg7aNqnq>WRd;Z+@GN_NYj5PGvc_2Kg^u2U8-hTzNrDrC4-T zLt$zJJYmD9O%s%fHr zP13Ije=Z!&pL44Cb6Pon#_N3By#5$n)Uhm(E?57!#Dd#HZayYY9FBsO(btePu3db}I7lb{wF6BpH-lHBuGk+x5En{iF7@UM;WXQJDl zi59+Gzmy{E=6qZ-qdpdYD$@22+kbohcZ|zMxr~bsx=QhBI5*E1Ui^k&>o;xY?8r?x zM<|46%lpyVEzSGKs#nFTpM$?hMh4DpD~iC{Ov~nI;d4=bD7N|TE{|7ykuR!g;QS3| zm@eWf-;>Mr5urN>C{Z-BGpzvFBe(jk=ML1Eh{bn$NkhDHuKY2g@srDQ7)N{t$c733 z%{N%ii3(EOQ2TC6nqT$aZQ~0^cBZCsBrlr0z9JTXQC{$DjhtOs;=fp;01Nz*<9cc8 zISPgJdmh%7Tm$oS_%`AHj34#8?*9dT^v5|nu+Xso4`I#wlK!6nJC$>u7^Z?kC62s= zy2LOCIr?i0;~D+m@XNh+*}s7QMYw_p2dk^`^B5FA?9hV9rA2cih25F;cIA-Q{=ATg z>xcrDm>ItOT8)^SoO5h)#T*g&wTe2UqQrkznZ!vI;#xlj2NWn~x0YtgR2As1plb=& zqN1D;zS63@c49&El_X5aHuD{;LcTaBm1bCa2(;QZy9965tKhxq`d-adyE-Zg6khUL zPWWg^yD&3+uuHE|n~7_yvgsfHD4etl;hRYQu9-+;dWqk1z`MrUKfky)PoJMUkBiQ~ zWIq4t^>HS>_!IGdMqtUC#%Ejt zaOLXfRpk*YwVcHBR*Bv>M-uoboeL&(rG9eOXL-O8f6AlRSmFeEUteNt1FK3t(qBn+ zf&vKkkMNz(BFUmUA=S=AgF~&iyO3s@=BIvvAe%RT;D4m;Jr=1CV;aVfD&DRxS3Cy`?q&4E^HRvl!J_{JVljT>uQQx_C;u;tva=J;%ij}53&>$q=)3Cp8Xe6 z#l6*o;PU|9UL-Lxk~qUae&Ct;AfK<%Oi&b=F5OVnz};HK-<`z4dQzSuGAlNWj_fgq%JDuJZ5nr^aBXBo=b*^Qk0T>DM^>z5?3_bV^wSk9N+Tnm zi4;D?uQHP!I|oNbZi$S_uOG=aKu23XJyC z#Kq`U+Yo(|U6$aT2eA)e{M#qpw->JyUJ4B*4Odp^%k$1=9|8ZF-Ef!$ITRj1D(KZ zfx%(Gl==PjUu0V&m(L8n6UrG;9Z*%(euzY29NS=M+!upFc z!{3}9%7y3GlOWkJhwsv-4nzbqX#&si4`CH~~FNNi;rPPHTH9bGCV`U1;gpt%0QZvqiBD&*#N*>&R_Pva82? z6l1A9r?~Jq+eypK7V?tAhkKNceWe7o!JlZt{U-Gn&j4l6(rG_KC-UdALRB}EkW+OF!$#{u1`Xg4yuI(R`S*6FurE;9;NvAU4rs7chzJ$ zUa<$+@hbPt)4R=9TD`OH@_MH_iGQjV0EG;dd*K(-rq%g zllA>h+fxhNe@lBBsrk`{^V3R}%}-g7JKt&v=4U~eyKSobc2R!r;xPB+Ah$C=w>!*z zNVx!ey(Jj1*YPt`_G@J@C7XHk|8S;G3NSygrz|4N#mIVhHAOWqvi3_g`o1P-w2GQ; zWMufy(I37u){-!$@BFBhOj*BRRAzn);T0jvdi3@c>XCB^)0x-V(JP2_LGI}EKE}^s zcJ-MTF@M8SR&|TI4kmO`75pW0T`I<9YfWuq3kt4TC#JahUM{G9N@JQ7bgFvU=p51v z6<{VRrgp&U23?lX5i&Ey^P@n?wndjr94Cae_%BEhwW;|(Ytmz zF5g$X92?W?)h~bh9yUWuDdRu!pM1-7iGuw{f)^2&U+?*ts)C)g=O@T+scoHloPB_CCa&(bdVieCZJfL}T5eP3RMwc6Iz_!L>HwW8)2Kp%Ua zTi*tRMLAo{VTK=^x_{wIhtwfeT8_(e)+VZkjUkk zvQH;l_1tJeJmp;V)caNVQ?`EHNwQ=8ShRlO>gU>&@e}_q>YuRF`XiaLG1O0t=gBU{ z^Q27K;g;}7D-%=D4Ag!+yEhGGhL=#HciO6*%Uh=*Z+#qjaNw}^(i2ODwOatuccoA2 z@T#_XJ{jPoE>T%-GDG@fKjTs5gzIg|f(=5FeEG|=-P*B({B`m7bKTsf{FPU~NcuNF z-@tZ8ANi~9G{gLXukK3za=pltzusx;D}Q~NJX-sczmDd=z4FN>y8#wS4t*B+O{BAT zEO~tdcDdC5;~u_2A_Z2M3^*+B9-8JIAaO3;2`4Oogz776On%?$)5y=GN{yWT+YLT} zI3SH}{`f{4x%Y}5`4dzS$(KJPnxuUB^PS88neqSrclPh_UgIxv8-T@(|IEDcPh$KF z{R?k(n2+W4z>V(PTbOb$d;UPP=NEeU`mHRxJF(}#cd0<# z%bvgGvOf0wZk73J_WV1nx@&i^=gV(1G_?OCd;WJ_9Tk1;`SmV+2YY_CrJK=z2Ydc+ zc60XpBTwm#5qay6nSpgOb0q61_5q9E`aEm0&a@x*XWS|4mrv(4U6~`OrumP8zKjSn z1?5e@_S&zb6l}ZYfOHA=ieKoXNZY2unIA6Y7xBop5*(6~iEi)9ThgXuXVKcVGxs6b ziXA8YB7I>fkH->6NDeFKr1WHp#qdXGD?PWLJ≻9hs#)s={knt<|DG@)66Q9RZcA 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

Lwc*s4WUX9SfT#n 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

!ifW_As4dnagn&b_&xJwHi6N%N6eG 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

65X^ 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%0Di2PsYnTcq}bxEh#x* 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�#l`J(1r6VkMXjC(Bl$as!|!~+lf|2Vwj+8 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